[packages] fix the logging file for nmbd
[packages.git] / net / samba3 / patches / 100-avm.patch
1 diff -urN samba-3.0.24.orig/source/auth/auth_compat.c samba-3.0.24/source/auth/auth_compat.c
2 --- samba-3.0.24.orig/source/auth/auth_compat.c 2006-04-20 04:29:20.000000000 +0200
3 +++ samba-3.0.24/source/auth/auth_compat.c      2007-07-17 13:19:05.000000000 +0200
4 @@ -92,18 +92,25 @@
5  check if a username/password pair is ok via the auth subsystem.
6  return True if the password is correct, False otherwise
7  ****************************************************************************/
8 +
9  BOOL password_ok(char *smb_name, DATA_BLOB password_blob)
10  {
11
12 +       DATA_BLOB null_password = data_blob(NULL, 0);
13 +       BOOL encrypted = (global_encrypted_passwords_negotiated && (password_blob.length == 24 || password_blob.length > 46));
14 +       
15 +       if (encrypted) {
16 +               /* 
17 +                * The password could be either NTLM or plain LM.  Try NTLM first, 
18 +                * but fall-through as required.
19 +                * Vista sends NTLMv2 here - we need to try the client given workgroup.
20 +                */
21 +               if (get_session_workgroup()) {
22 +                       if (NT_STATUS_IS_OK(pass_check_smb(smb_name, get_session_workgroup(), null_password, password_blob, null_password, encrypted))) {
23 +                               return True;
24 +                       }
25 +               }
26  
27 -       DATA_BLOB null_password = data_blob(NULL, 0);
28 -       BOOL encrypted = (global_encrypted_passwords_negotiated && password_blob.length == 24);
29 -       
30 -       if (encrypted) {
31 -               /* 
32 -                * The password could be either NTLM or plain LM.  Try NTLM first, 
33 -                * but fall-through as required.
34 -                * NTLMv2 makes no sense here.
35 -                */
36                 if (NT_STATUS_IS_OK(pass_check_smb(smb_name, lp_workgroup(), null_password, password_blob, null_password, encrypted))) {
37                         return True;
38                 }
39 @@ -119,5 +126,3 @@
40  
41         return False;
42  }
43 -
44 -
45 diff -urN samba-3.0.24.orig/source/auth/auth_util.c samba-3.0.24/source/auth/auth_util.c
46 --- samba-3.0.24.orig/source/auth/auth_util.c   2007-02-04 19:59:14.000000000 +0100
47 +++ samba-3.0.24/source/auth/auth_util.c        2007-07-17 13:19:05.000000000 +0200
48 @@ -2043,18 +2043,20 @@
49                 /* The only other possible result is that winbind is not up
50                    and running. We need to update the trustdom_cache
51                    ourselves */
52 -               
53 +#ifndef AVM_SMALLER            
54                 update_trustdom_cache();
55 +#endif
56         }
57  
58         /* now the trustdom cache should be available a DC could still
59          * have a transitive trust so fall back to the cache of trusted
60          * domains (like a domain member would use  */
61  
62 +#ifndef AVM_SMALLER
63         if ( trustdom_cache_fetch(dom_name, &trustdom_sid) ) {
64                 return True;
65         }
66 -
67 +#endif
68         return False;
69  }
70  
71
72 diff -urN samba-3.0.24.orig/source/bin/dummy samba-3.0.24/source/bin/dummy
73 --- samba-3.0.24.orig/source/bin/dummy  1970-01-01 01:00:00.000000000 +0100
74 +++ samba-3.0.24/source/bin/dummy       2007-07-17 13:19:05.000000000 +0200
75 @@ -0,0 +1 @@
76 +x
77 diff -urN samba-3.0.24.orig/source/.dmallocrc samba-3.0.24/source/.dmallocrc
78 --- samba-3.0.24.orig/source/.dmallocrc 2005-02-25 18:59:36.000000000 +0100
79 +++ samba-3.0.24/source/.dmallocrc      1970-01-01 01:00:00.000000000 +0100
80 @@ -1,2 +0,0 @@
81 -samba allow-free-null, log-stats, log-non-free, log-trans, \
82 -        check-fence, check-heap, check-lists, error-abort
83 \ No newline at end of file
84 diff -urN samba-3.0.24.orig/source/include/config.h samba-3.0.24/source/include/config.h
85 --- samba-3.0.24.orig/source/include/config.h   1970-01-01 01:00:00.000000000 +0100
86 +++ samba-3.0.24/source/include/config.h        2008-01-28 10:18:38.000000000 +0100
87 @@ -0,0 +1,2229 @@
88 +/* include/config.h.  Generated by configure.  */
89 +/* include/config.h.in.  Generated from configure.in by autoheader.  */
90 +
91 +/* Whether the host os is aix */
92 +/* #undef AIX */
93 +
94 +/* Whether the AIX send_file() API is available */
95 +/* #undef AIX_SENDFILE_API */
96 +
97 +/* Does extattr API work */
98 +/* #undef BROKEN_EXTATTR */
99 +
100 +/* Does getgrnam work correctly */
101 +/* #undef BROKEN_GETGRNAM */
102 +
103 +/* Whether the nisplus include files are broken */
104 +#define BROKEN_NISPLUS_INCLUDE_FILES 1
105 +
106 +/* Broken RedHat 7.2 system header files */
107 +/* #undef BROKEN_REDHAT_7_SYSTEM_HEADERS */
108 +
109 +/* Does strndup work correctly */
110 +/* #undef BROKEN_STRNDUP */
111 +
112 +/* Does strnlen work correctly */
113 +/* #undef BROKEN_STRNLEN */
114 +
115 +/* Does this system use unicode compose characters */
116 +/* #undef BROKEN_UNICODE_COMPOSE_CHARACTERS */
117 +
118 +/* Whether the compiler supports the LL prefix on long long integers */
119 +#define COMPILER_SUPPORTS_LL 1
120 +
121 +/* Whether the host os is Darwin/MacOSX */
122 +/* #undef DARWINOS */
123 +
124 +/* Default display charset name */
125 +#define DEFAULT_DISPLAY_CHARSET "ASCII"
126 +
127 +/* Default dos charset name */
128 +#define DEFAULT_DOS_CHARSET "CP850"
129 +
130 +/* Default unix charset name */
131 +#define DEFAULT_UNIX_CHARSET "UTF-8"
132 +
133 +/* Define to check invariants around some common functions */
134 +/* #undef DMALLOC_FUNC_CHECK */
135 +
136 +/* Define to turn on dmalloc debugging */
137 +/* #undef ENABLE_DMALLOC */
138 +
139 +/* Whether the host os is FreeBSD */
140 +/* #undef FREEBSD */
141 +
142 +/* Whether the FreeBSD sendfile() API is available */
143 +/* #undef FREEBSD_SENDFILE_API */
144 +
145 +/* Whether we are running on 64bit linux */
146 +/* #undef HAVE_64BIT_LINUX */
147 +
148 +/* Whether acl_get_perm_np() is available */
149 +/* #undef HAVE_ACL_GET_PERM_NP */
150 +
151 +/* Whether the krb5_address struct has a addrtype property */
152 +/* #undef HAVE_ADDRTYPE_IN_KRB5_ADDRESS */
153 +
154 +/* Whether the krb5_address struct has a addr_type property */
155 +/* #undef HAVE_ADDR_TYPE_IN_KRB5_ADDRESS */
156 +
157 +/* Define to 1 if you have the <afs/afs.h> header file. */
158 +/* #undef HAVE_AFS_AFS_H */
159 +
160 +/* Define to 1 if you have the <afs.h> header file. */
161 +/* #undef HAVE_AFS_H */
162 +
163 +/* Whether 64 bit aio is available */
164 +/* #undef HAVE_AIOCB64 */
165 +
166 +/* Have aio_cancel */
167 +/* #undef HAVE_AIO_CANCEL */
168 +
169 +/* Have aio_cancel64 */
170 +/* #undef HAVE_AIO_CANCEL64 */
171 +
172 +/* Have aio_error */
173 +/* #undef HAVE_AIO_ERROR */
174 +
175 +/* Have aio_error64 */
176 +/* #undef HAVE_AIO_ERROR64 */
177 +
178 +/* Have aio_fsync */
179 +/* #undef HAVE_AIO_FSYNC */
180 +
181 +/* Have aio_fsync64 */
182 +/* #undef HAVE_AIO_FSYNC64 */
183 +
184 +/* Define to 1 if you have the <aio.h> header file. */
185 +/* AR7 #define HAVE_AIO_H 1 */
186 +
187 +/* Have aio_read */
188 +/* #undef HAVE_AIO_READ */
189 +
190 +/* Have aio_read64 */
191 +/* #undef HAVE_AIO_READ64 */
192 +
193 +/* Have aio_return */
194 +/* #undef HAVE_AIO_RETURN */
195 +
196 +/* Have aio_return64 */
197 +/* #undef HAVE_AIO_RETURN64 */
198 +
199 +/* Have aio_suspend */
200 +/* #undef HAVE_AIO_SUSPEND */
201 +
202 +/* Have aio_suspend64 */
203 +/* #undef HAVE_AIO_SUSPEND64 */
204 +
205 +/* Have aio_write */
206 +/* #undef HAVE_AIO_WRITE */
207 +
208 +/* Have aio_write64 */
209 +/* #undef HAVE_AIO_WRITE64 */
210 +
211 +/* Whether AIX ACLs are available */
212 +/* #undef HAVE_AIX_ACLS */
213 +
214 +/* Define to 1 if you have the <alloca.h> header file. */
215 +#define HAVE_ALLOCA_H 1
216 +
217 +/* Whether the AP_OPTS_USE_SUBKEY ap option is available */
218 +/* #undef HAVE_AP_OPTS_USE_SUBKEY */
219 +
220 +/* Define to 1 if you have the <arpa/inet.h> header file. */
221 +#define HAVE_ARPA_INET_H 1
222 +
223 +/* check for <asm/types.h> */
224 +#define HAVE_ASM_TYPES_H 1
225 +
226 +/* Define to 1 if you have the `asprintf' function. */
227 +#define HAVE_ASPRINTF 1
228 +
229 +/* Whether asprintf() is available */
230 +#define HAVE_ASPRINTF_DECL 1
231 +
232 +/* Define to 1 if you have the `atexit' function. */
233 +#define HAVE_ATEXIT 1
234 +
235 +/* Define to 1 if you have the `attr_get' function. */
236 +/* #undef HAVE_ATTR_GET */
237 +
238 +/* Define to 1 if you have the `attr_getf' function. */
239 +/* #undef HAVE_ATTR_GETF */
240 +
241 +/* Define to 1 if you have the `attr_list' function. */
242 +/* #undef HAVE_ATTR_LIST */
243 +
244 +/* Define to 1 if you have the `attr_listf' function. */
245 +/* #undef HAVE_ATTR_LISTF */
246 +
247 +/* Define to 1 if you have the `attr_remove' function. */
248 +/* #undef HAVE_ATTR_REMOVE */
249 +
250 +/* Define to 1 if you have the `attr_removef' function. */
251 +/* #undef HAVE_ATTR_REMOVEF */
252 +
253 +/* Define to 1 if you have the `attr_set' function. */
254 +/* #undef HAVE_ATTR_SET */
255 +
256 +/* Define to 1 if you have the `attr_setf' function. */
257 +/* #undef HAVE_ATTR_SETF */
258 +
259 +/* Define to 1 if you have the <attr/xattr.h> header file. */
260 +/* #undef HAVE_ATTR_XATTR_H */
261 +
262 +/* Define to 1 if you have the `backtrace_symbols' function. */
263 +/* AR7 #define HAVE_BACKTRACE_SYMBOLS 1 */
264 +
265 +/* Define to 1 if you have the `ber_scanf' function. */
266 +/* #undef HAVE_BER_SCANF */
267 +
268 +/* What header to include for iconv() function: biconv.h */
269 +/* #undef HAVE_BICONV */
270 +
271 +/* Define to 1 if you have the `bigcrypt' function. */
272 +/* #undef HAVE_BIGCRYPT */
273 +
274 +/* Whether fcntl64 locks are broken */
275 +/* #undef HAVE_BROKEN_FCNTL64_LOCKS */
276 +
277 +/* Whether getgroups is broken */
278 +/* #undef HAVE_BROKEN_GETGROUPS */
279 +
280 +/* Whether readdir() is broken */
281 +/* #undef HAVE_BROKEN_READDIR */
282 +
283 +/* Whether there is a C99 compliant vsnprintf */
284 +#define HAVE_C99_VSNPRINTF 1
285 +
286 +/* Define to 1 if you have the <CFStringEncodingConverter.h> header file. */
287 +/* #undef HAVE_CFSTRINGENCODINGCONVERTER_H */
288 +
289 +/* Define to 1 if you have the `chmod' function. */
290 +#define HAVE_CHMOD 1
291 +
292 +/* Define to 1 if you have the `chown' function. */
293 +#define HAVE_CHOWN 1
294 +
295 +/* Define to 1 if you have the `chroot' function. */
296 +#define HAVE_CHROOT 1
297 +
298 +/* Define to 1 if you have the `chsize' function. */
299 +/* #undef HAVE_CHSIZE */
300 +
301 +/* Define to 1 if you have the `closedir64' function. */
302 +/* #undef HAVE_CLOSEDIR64 */
303 +
304 +/* Whether the compiler will optimize out function calls */
305 +#define HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS 1
306 +
307 +/* Define to 1 if you have the <com_err.h> header file. */
308 +/* #undef HAVE_COM_ERR_H */
309 +
310 +/* Whether the system has connect() */
311 +#define HAVE_CONNECT 1
312 +
313 +/* Define to 1 if you have the `copy_Authenticator' function. */
314 +/* #undef HAVE_COPY_AUTHENTICATOR */
315 +
316 +/* Define to 1 if you have the <CoreFoundation/CFStringEncodingConverter.h>
317 +   header file. */
318 +/* #undef HAVE_COREFOUNDATION_CFSTRINGENCODINGCONVERTER_H */
319 +
320 +/* Define to 1 if you have the `creat64' function. */
321 +/* AR7 #define HAVE_CREAT64 1 */
322 +
323 +/* Whether the system has the crypt() function */
324 +#define HAVE_CRYPT 1
325 +
326 +/* Define to 1 if you have the `crypt16' function. */
327 +/* #undef HAVE_CRYPT16 */
328 +
329 +/* Define to 1 if you have the <ctype.h> header file. */
330 +#define HAVE_CTYPE_H 1
331 +
332 +/* Whether we have CUPS */
333 +/* #undef HAVE_CUPS */
334 +
335 +/* Define to 1 if you have the `des_set_key' function. */
336 +/* #undef HAVE_DES_SET_KEY */
337 +
338 +/* Whether the 'dev64_t' type is available */
339 +/* #undef HAVE_DEV64_T */
340 +
341 +/* Whether the major macro for dev_t is available */
342 +#define HAVE_DEVICE_MAJOR_FN 1
343 +
344 +/* Whether the minor macro for dev_t is available */
345 +#define HAVE_DEVICE_MINOR_FN 1
346 +
347 +/* Define to 1 if you have the `devnm' function. */
348 +/* #undef HAVE_DEVNM */
349 +
350 +/* Define to 1 if you have the <devnm.h> header file. */
351 +/* #undef HAVE_DEVNM_H */
352 +
353 +/* Whether dirent has a d_off member */
354 +#define HAVE_DIRENT_D_OFF 1
355 +
356 +/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
357 +   */
358 +#define HAVE_DIRENT_H 1
359 +
360 +/* Define to 1 if you have the `dlclose' function. */
361 +#define HAVE_DLCLOSE 1
362 +
363 +/* Define to 1 if you have the `dlerror' function. */
364 +#define HAVE_DLERROR 1
365 +
366 +/* Define to 1 if you have the <dlfcn.h> header file. */
367 +#define HAVE_DLFCN_H 1
368 +
369 +/* Define to 1 if you have the `dlopen' function. */
370 +#define HAVE_DLOPEN 1
371 +
372 +/* Define to 1 if you have the `dlsym' function. */
373 +#define HAVE_DLSYM 1
374 +
375 +/* Define to 1 if you have the `dlsym_prepend_underscore' function. */
376 +/* #undef HAVE_DLSYM_PREPEND_UNDERSCORE */
377 +
378 +/* struct dqblk .dqb_fsoftlimit */
379 +/* #undef HAVE_DQB_FSOFTLIMIT */
380 +
381 +/* Define to 1 if you have the `dup2' function. */
382 +#define HAVE_DUP2 1
383 +
384 +/* Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available */
385 +/* #undef HAVE_ENCTYPE_ARCFOUR_HMAC_MD5 */
386 +
387 +/* Define to 1 if you have the `endmntent' function. */
388 +#define HAVE_ENDMNTENT 1
389 +
390 +/* Define to 1 if you have the `endnetgrent' function. */
391 +/* AR7 #define HAVE_ENDNETGRENT 1 */
392 +
393 +/* Whether errno() is available */
394 +#define HAVE_ERRNO_DECL 1
395 +
396 +/* Define to 1 if you have the <execinfo.h> header file. */
397 +/* AR7 #define HAVE_EXECINFO_H 1 */
398 +
399 +
400 +/* Define to 1 if you have the `execl' function. */
401 +#define HAVE_EXECL 1
402 +
403 +/* Whether large file support can be enabled */
404 +/* AR7 #define HAVE_EXPLICIT_LARGEFILE_SUPPORT 1 */
405 +
406 +/* Define to 1 if you have the `extattr_delete_fd' function. */
407 +/* #undef HAVE_EXTATTR_DELETE_FD */
408 +
409 +/* Define to 1 if you have the `extattr_delete_file' function. */
410 +/* #undef HAVE_EXTATTR_DELETE_FILE */
411 +
412 +/* Define to 1 if you have the `extattr_delete_link' function. */
413 +/* #undef HAVE_EXTATTR_DELETE_LINK */
414 +
415 +/* Define to 1 if you have the `extattr_get_fd' function. */
416 +/* #undef HAVE_EXTATTR_GET_FD */
417 +
418 +/* Define to 1 if you have the `extattr_get_file' function. */
419 +/* #undef HAVE_EXTATTR_GET_FILE */
420 +
421 +/* Define to 1 if you have the `extattr_get_link' function. */
422 +/* #undef HAVE_EXTATTR_GET_LINK */
423 +
424 +/* Define to 1 if you have the `extattr_list_fd' function. */
425 +/* #undef HAVE_EXTATTR_LIST_FD */
426 +
427 +/* Define to 1 if you have the `extattr_list_file' function. */
428 +/* #undef HAVE_EXTATTR_LIST_FILE */
429 +
430 +/* Define to 1 if you have the `extattr_list_link' function. */
431 +/* #undef HAVE_EXTATTR_LIST_LINK */
432 +
433 +/* Define to 1 if you have the `extattr_set_fd' function. */
434 +/* #undef HAVE_EXTATTR_SET_FD */
435 +
436 +/* Define to 1 if you have the `extattr_set_file' function. */
437 +/* #undef HAVE_EXTATTR_SET_FILE */
438 +
439 +/* Define to 1 if you have the `extattr_set_link' function. */
440 +/* #undef HAVE_EXTATTR_SET_LINK */
441 +
442 +/* Define to 1 if you have the `fchmod' function. */
443 +#define HAVE_FCHMOD 1
444 +
445 +/* Define to 1 if you have the `fchown' function. */
446 +#define HAVE_FCHOWN 1
447 +
448 +/* Define to 1 if you have the <fcntl.h> header file. */
449 +#define HAVE_FCNTL_H 1
450 +
451 +/* Whether fcntl locking is available */
452 +#define HAVE_FCNTL_LOCK 1
453 +
454 +/* Define to 1 if you have the `fcvt' function. */
455 +#define HAVE_FCVT 1
456 +
457 +/* Define to 1 if you have the `fcvtl' function. */
458 +/* #undef HAVE_FCVTL */
459 +
460 +/* Define to 1 if you have the `fgetxattr' function. */
461 +/* AR7 #define HAVE_FGETXATTR 1 */
462 +
463 +/* Define to 1 if you have the `flistxattr' function. */
464 +/* AR7 #define HAVE_FLISTXATTR 1 */
465 +
466 +/* Define to 1 if you have the `fopen64' function. */
467 +/* AR7 #define HAVE_FOPEN64 1 */
468 +
469 +/* Define to 1 if you have the `fremovexattr' function. */
470 +/* AR7 #define HAVE_FREMOVEXATTR 1 */
471 +
472 +/* Define to 1 if you have the `fseek64' function. */
473 +/* #undef HAVE_FSEEK64 */
474 +
475 +/* Define to 1 if you have the `fseeko64' function. */
476 +/* #define HAVE_FSEEKO64 1 */
477 +
478 +/* Define to 1 if you have the `fsetxattr' function. */
479 +/* AR7 #define HAVE_FSETXATTR 1 */
480 +
481 +/* Define to 1 if you have the `fstat' function. */
482 +#define HAVE_FSTAT 1
483 +
484 +/* Whether fstat64() is available */
485 +/* AR7 #define HAVE_FSTAT64 1 */
486 +
487 +/* Define to 1 if you have the `fsync' function. */
488 +#define HAVE_FSYNC 1
489 +
490 +/* Define to 1 if you have the `ftell64' function. */
491 +/* #undef HAVE_FTELL64 */
492 +
493 +/* Define to 1 if you have the `ftello64' function. */
494 +/* AR7 #define HAVE_FTELLO64 1 */
495 +
496 +/* Define to 1 if you have the `ftruncate' function. */
497 +#define HAVE_FTRUNCATE 1
498 +
499 +/* Define to 1 if you have the `ftruncate64' function. */
500 +/* AR7 #define HAVE_FTRUNCATE64 1 */
501 +
502 +/* Truncate extend */
503 +#define HAVE_FTRUNCATE_EXTEND 1
504 +
505 +/* Whether there is a __FUNCTION__ macro */
506 +#define HAVE_FUNCTION_MACRO 1
507 +
508 +/* Define to 1 if you have the `getauthuid' function. */
509 +/* #undef HAVE_GETAUTHUID */
510 +
511 +/* Define to 1 if you have the `getcwd' function. */
512 +#define HAVE_GETCWD 1
513 +
514 +/* Define to 1 if you have the `getdents' function. */
515 +/* #undef HAVE_GETDENTS */
516 +
517 +/* Define to 1 if you have the `getdirentries' function. */
518 +#define HAVE_GETDIRENTRIES 1
519 +
520 +/* Define to 1 if you have the `getgrent' function. */
521 +#define HAVE_GETGRENT 1
522 +
523 +/* Define to 1 if you have the `getgrnam' function. */
524 +#define HAVE_GETGRNAM 1
525 +
526 +/* Define to 1 if you have the `getgrouplist' function. */
527 +/* #undef HAVE_GETGROUPLIST */
528 +
529 +/* Define to 1 if you have the `getmntent' function. */
530 +#define HAVE_GETMNTENT 1
531 +
532 +/* Define to 1 if you have the `getnetgrent' function. */
533 +#define HAVE_GETNETGRENT 1
534 +
535 +/* Define to 1 if you have the `getprpwnam' function. */
536 +/* #undef HAVE_GETPRPWNAM */
537 +
538 +/* Define to 1 if you have the `getpwanam' function. */
539 +/* #undef HAVE_GETPWANAM */
540 +
541 +/* Define to 1 if you have the `getrlimit' function. */
542 +#define HAVE_GETRLIMIT 1
543 +
544 +/* Define to 1 if you have the `getspnam' function. */
545 +#define HAVE_GETSPNAM 1
546 +
547 +/* Whether gettimeofday() is available */
548 +#define HAVE_GETTIMEOFDAY_TZ 1
549 +
550 +/* Define to 1 if you have the `getutmpx' function. */
551 +#define HAVE_GETUTMPX 1
552 +
553 +/* Define to 1 if you have the `getxattr' function. */
554 +/* AR7 #define HAVE_GETXATTR 1 */
555 +
556 +/* What header to include for iconv() function: giconv.h */
557 +/* #undef HAVE_GICONV */
558 +
559 +/* Define to 1 if you have the `glob' function. */
560 +#define HAVE_GLOB 1
561 +
562 +/* Define to 1 if you have the <glob.h> header file. */
563 +#define HAVE_GLOB_H 1
564 +
565 +/* Define to 1 if you have the `grantpt' function. */
566 +#define HAVE_GRANTPT 1
567 +
568 +/* Define to 1 if you have the <grp.h> header file. */
569 +#define HAVE_GRP_H 1
570 +
571 +/* Whether GSSAPI is available */
572 +/* #undef HAVE_GSSAPI */
573 +
574 +/* Define to 1 if you have the <gssapi/gssapi_generic.h> header file. */
575 +/* #undef HAVE_GSSAPI_GSSAPI_GENERIC_H */
576 +
577 +/* Define to 1 if you have the <gssapi/gssapi.h> header file. */
578 +/* #undef HAVE_GSSAPI_GSSAPI_H */
579 +
580 +/* Define to 1 if you have the <gssapi.h> header file. */
581 +/* #undef HAVE_GSSAPI_H */
582 +
583 +/* Define to 1 if you have the `gss_display_status' function. */
584 +/* #undef HAVE_GSS_DISPLAY_STATUS */
585 +
586 +/* Define to 1 if you have the <history.h> header file. */
587 +/* #undef HAVE_HISTORY_H */
588 +
589 +/* Whether HPUX ACLs are available */
590 +/* #undef HAVE_HPUX_ACLS */
591 +
592 +/* What header to include for iconv() function: iconv.h */
593 +/* AR7 #define HAVE_ICONV 1 */
594 +
595 +/* Whether iface AIX is available */
596 +/* #undef HAVE_IFACE_AIX */
597 +
598 +/* Whether iface ifconf is available */
599 +#define HAVE_IFACE_IFCONF 1
600 +
601 +/* Whether iface ifreq is available */
602 +/* #undef HAVE_IFACE_IFREQ */
603 +
604 +/* Whether the compiler supports immediate structures */
605 +#define HAVE_IMMEDIATE_STRUCTURES 1
606 +
607 +/* Define to 1 if you have the `initgroups' function. */
608 +#define HAVE_INITGROUPS 1
609 +
610 +/* Define to 1 if you have the `innetgr' function. */
611 +/* AR7 #define HAVE_INNETGR 1 */
612 +
613 +/* Whether the 'ino64_t' type is available */
614 +/* #undef HAVE_INO64_T */
615 +
616 +/* Whether int16 typedef is included by rpc/rpc.h */
617 +/* #undef HAVE_INT16_FROM_RPC_RPC_H */
618 +
619 +/* Whether int32 typedef is included by rpc/rpc.h */
620 +/* #undef HAVE_INT32_FROM_RPC_RPC_H */
621 +
622 +/* Define to 1 if you have the <inttypes.h> header file. */
623 +#define HAVE_INTTYPES_H 1
624 +
625 +/* Whether IRIX ACLs are available */
626 +/* #undef HAVE_IRIX_ACLS */
627 +
628 +/* Whether IRIX specific capabilities are available */
629 +/* #undef HAVE_IRIX_SPECIFIC_CAPABILITIES */
630 +
631 +/* Whether kernel notifies changes */
632 +#define HAVE_KERNEL_CHANGE_NOTIFY 1
633 +
634 +/* Whether IRIX kernel oplock type definitions are available */
635 +/* #undef HAVE_KERNEL_OPLOCKS_IRIX */
636 +
637 +/* Whether to use linux kernel oplocks */
638 +#define HAVE_KERNEL_OPLOCKS_LINUX 1
639 +
640 +/* Whether the kernel supports share modes */
641 +#define HAVE_KERNEL_SHARE_MODES 1
642 +
643 +/* Whether to have KRB5 support */
644 +/* #undef HAVE_KRB5 */
645 +
646 +/* Define to 1 if you have the `krb5_auth_con_setkey' function. */
647 +/* #undef HAVE_KRB5_AUTH_CON_SETKEY */
648 +
649 +/* Define to 1 if you have the `krb5_auth_con_setuseruserkey' function. */
650 +/* #undef HAVE_KRB5_AUTH_CON_SETUSERUSERKEY */
651 +
652 +/* Define to 1 if you have the `krb5_c_enctype_compare' function. */
653 +/* #undef HAVE_KRB5_C_ENCTYPE_COMPARE */
654 +
655 +/* Whether the type krb5_encrypt_block exists */
656 +/* #undef HAVE_KRB5_ENCRYPT_BLOCK */
657 +
658 +/* Define to 1 if you have the `krb5_encrypt_data' function. */
659 +/* #undef HAVE_KRB5_ENCRYPT_DATA */
660 +
661 +/* Define to 1 if you have the `krb5_enctypes_compatible_keys' function. */
662 +/* #undef HAVE_KRB5_ENCTYPES_COMPATIBLE_KEYS */
663 +
664 +/* Define to 1 if you have the `krb5_free_data_contents' function. */
665 +/* #undef HAVE_KRB5_FREE_DATA_CONTENTS */
666 +
667 +/* Define to 1 if you have the `krb5_free_keytab_entry_contents' function. */
668 +/* #undef HAVE_KRB5_FREE_KEYTAB_ENTRY_CONTENTS */
669 +
670 +/* Define to 1 if you have the `krb5_free_ktypes' function. */
671 +/* #undef HAVE_KRB5_FREE_KTYPES */
672 +
673 +/* Define to 1 if you have the `krb5_free_unparsed_name' function. */
674 +/* #undef HAVE_KRB5_FREE_UNPARSED_NAME */
675 +
676 +/* Define to 1 if you have the `krb5_get_default_in_tkt_etypes' function. */
677 +/* #undef HAVE_KRB5_GET_DEFAULT_IN_TKT_ETYPES */
678 +
679 +/* Define to 1 if you have the `krb5_get_permitted_enctypes' function. */
680 +/* #undef HAVE_KRB5_GET_PERMITTED_ENCTYPES */
681 +
682 +/* Define to 1 if you have the `krb5_get_pw_salt' function. */
683 +/* #undef HAVE_KRB5_GET_PW_SALT */
684 +
685 +/* Define to 1 if you have the <krb5.h> header file. */
686 +/* #undef HAVE_KRB5_H */
687 +
688 +/* Whether the krb5_creds struct has a keyblock property */
689 +/* #undef HAVE_KRB5_KEYBLOCK_IN_CREDS */
690 +
691 +/* Whether the krb5_keyblock struct has a keyvalue property */
692 +/* #undef HAVE_KRB5_KEYBLOCK_KEYVALUE */
693 +
694 +/* Whether krb5_keytab_entry has key member */
695 +/* #undef HAVE_KRB5_KEYTAB_ENTRY_KEY */
696 +
697 +/* Whether krb5_keytab_entry has keyblock member */
698 +/* #undef HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK */
699 +
700 +/* Define to 1 if you have the `krb5_krbhst_get_addrinfo' function. */
701 +/* #undef HAVE_KRB5_KRBHST_GET_ADDRINFO */
702 +
703 +/* Define to 1 if you have the `krb5_kt_compare' function. */
704 +/* #undef HAVE_KRB5_KT_COMPARE */
705 +
706 +/* Define to 1 if you have the `krb5_kt_free_entry' function. */
707 +/* #undef HAVE_KRB5_KT_FREE_ENTRY */
708 +
709 +/* Define to 1 if you have the `krb5_locate_kdc' function. */
710 +/* #undef HAVE_KRB5_LOCATE_KDC */
711 +
712 +/* Define to 1 if you have the `krb5_mk_req_extended' function. */
713 +/* #undef HAVE_KRB5_MK_REQ_EXTENDED */
714 +
715 +/* Define to 1 if you have the `krb5_principal2salt' function. */
716 +/* #undef HAVE_KRB5_PRINCIPAL2SALT */
717 +
718 +/* Define to 1 if you have the `krb5_principal_get_comp_string' function. */
719 +/* #undef HAVE_KRB5_PRINCIPAL_GET_COMP_STRING */
720 +
721 +/* Whether krb5_princ_component is available */
722 +/* #undef HAVE_KRB5_PRINC_COMPONENT */
723 +
724 +/* Whether the krb5_creds struct has a session property */
725 +/* #undef HAVE_KRB5_SESSION_IN_CREDS */
726 +
727 +/* Define to 1 if you have the `krb5_set_default_in_tkt_etypes' function. */
728 +/* #undef HAVE_KRB5_SET_DEFAULT_IN_TKT_ETYPES */
729 +
730 +/* Define to 1 if you have the `krb5_set_default_tgs_ktypes' function. */
731 +/* #undef HAVE_KRB5_SET_DEFAULT_TGS_KTYPES */
732 +
733 +/* Define to 1 if you have the `krb5_set_real_time' function. */
734 +/* #undef HAVE_KRB5_SET_REAL_TIME */
735 +
736 +/* Define to 1 if you have the `krb5_string_to_key' function. */
737 +/* #undef HAVE_KRB5_STRING_TO_KEY */
738 +
739 +/* Define to 1 if you have the `krb5_string_to_key_salt' function. */
740 +/* #undef HAVE_KRB5_STRING_TO_KEY_SALT */
741 +
742 +/* Whether the krb5_ticket struct has a enc_part2 property */
743 +/* #undef HAVE_KRB5_TKT_ENC_PART2 */
744 +
745 +/* Define to 1 if you have the `krb5_use_enctype' function. */
746 +/* #undef HAVE_KRB5_USE_ENCTYPE */
747 +
748 +/* Whether the KV5M_KEYTAB option is available */
749 +/* #undef HAVE_KV5M_KEYTAB */
750 +
751 +/* Define to 1 if you have the <langinfo.h> header file. */
752 +#define HAVE_LANGINFO_H 1
753 +
754 +/* Define to 1 if you have the <lastlog.h> header file. */
755 +#define HAVE_LASTLOG_H 1
756 +
757 +/* Define to 1 if you have the <lber.h> header file. */
758 +/* #undef HAVE_LBER_H */
759 +
760 +/* Whether ldap is available */
761 +/* #undef HAVE_LDAP */
762 +
763 +/* Define to 1 if you have the `ldap_domain2hostlist' function. */
764 +/* #undef HAVE_LDAP_DOMAIN2HOSTLIST */
765 +
766 +/* Define to 1 if you have the <ldap.h> header file. */
767 +/* #undef HAVE_LDAP_H */
768 +
769 +/* Define to 1 if you have the `ldap_init' function. */
770 +/* #undef HAVE_LDAP_INIT */
771 +
772 +/* Define to 1 if you have the `ldap_initialize' function. */
773 +/* #undef HAVE_LDAP_INITIALIZE */
774 +
775 +/* Define to 1 if you have the `ldap_set_rebind_proc' function. */
776 +/* #undef HAVE_LDAP_SET_REBIND_PROC */
777 +
778 +/* Define to 1 if you have the `lgetxattr' function. */
779 +/* AR7 #define HAVE_LGETXATTR 1 */
780 +
781 +/* Define to 1 if you have the `asn1' library (-lasn1). */
782 +/* #undef HAVE_LIBASN1 */
783 +
784 +/* Define to 1 if you have the `com_err' library (-lcom_err). */
785 +/* #undef HAVE_LIBCOM_ERR */
786 +
787 +/* Define to 1 if you have the `crypto' library (-lcrypto). */
788 +/* #undef HAVE_LIBCRYPTO */
789 +
790 +/* Define to 1 if you have the `dl' library (-ldl). */
791 +/* #undef HAVE_LIBDL */
792 +
793 +/* Define to 1 if you have the `exc' library (-lexc). */
794 +/* #undef HAVE_LIBEXC */
795 +
796 +/* Define to 1 if you have the <libexc.h> header file. */
797 +/* #undef HAVE_LIBEXC_H */
798 +
799 +/* Define to 1 if you have the `gen' library (-lgen). */
800 +/* #undef HAVE_LIBGEN */
801 +
802 +/* Define to 1 if you have the `gssapi' library (-lgssapi). */
803 +/* #undef HAVE_LIBGSSAPI */
804 +
805 +/* Define to 1 if you have the `gssapi_krb5' library (-lgssapi_krb5). */
806 +/* #undef HAVE_LIBGSSAPI_KRB5 */
807 +
808 +/* Define to 1 if you have the `inet' library (-linet). */
809 +/* #undef HAVE_LIBINET */
810 +
811 +/* Define to 1 if you have the `k5crypto' library (-lk5crypto). */
812 +/* #undef HAVE_LIBK5CRYPTO */
813 +
814 +/* Define to 1 if you have the `krb5' library (-lkrb5). */
815 +/* #undef HAVE_LIBKRB5 */
816 +
817 +/* Define to 1 if you have the `lber' library (-llber). */
818 +/* #undef HAVE_LIBLBER */
819 +
820 +/* Define to 1 if you have the `ldap' library (-lldap). */
821 +/* #undef HAVE_LIBLDAP */
822 +
823 +/* Define to 1 if you have the `nsl' library (-lnsl). */
824 +/* #undef HAVE_LIBNSL */
825 +
826 +/* Define to 1 if you have the `nsl_s' library (-lnsl_s). */
827 +/* #undef HAVE_LIBNSL_S */
828 +
829 +/* Whether libpam is available */
830 +#define HAVE_LIBPAM 1
831 +
832 +/* Whether the system has readline */
833 +/* AR7 #define HAVE_LIBREADLINE 1 */
834 +
835 +/* Define to 1 if you have the `resolv' library (-lresolv). */
836 +#define HAVE_LIBRESOLV 1
837 +
838 +/* Define to 1 if you have the `roken' library (-lroken). */
839 +/* #undef HAVE_LIBROKEN */
840 +
841 +/* Define to 1 if you have the `sec' library (-lsec). */
842 +/* #undef HAVE_LIBSEC */
843 +
844 +/* Define to 1 if you have the `security' library (-lsecurity). */
845 +/* #undef HAVE_LIBSECURITY */
846 +
847 +/* Define to 1 if you have the `sendfile' library (-lsendfile). */
848 +/* #undef HAVE_LIBSENDFILE */
849 +
850 +/* Define to 1 if you have the `socket' library (-lsocket). */
851 +/* #undef HAVE_LIBSOCKET */
852 +
853 +/* Define to 1 if you have the <limits.h> header file. */
854 +#define HAVE_LIMITS_H 1
855 +
856 +/* Define to 1 if you have the `link' function. */
857 +#define HAVE_LINK 1
858 +
859 +/* Whether Linux xfs quota support is available */
860 +/* AR7 #define HAVE_LINUX_XFS_QUOTAS 1 */
861 +
862 +/* Define to 1 if you have the `listxattr' function. */
863 +/* AR7 #define HAVE_LISTXATTR 1 */
864 +
865 +/* Define to 1 if you have the `llistxattr' function. */
866 +/* AR7 #define HAVE_LLISTXATTR 1 */
867 +
868 +/* Define to 1 if you have the `llseek' function. */
869 +#define HAVE_LLSEEK 1
870 +
871 +/* Define to 1 if you have the <locale.h> header file. */
872 +#define HAVE_LOCALE_H 1
873 +
874 +/* Whether the host supports long long's */
875 +#define HAVE_LONGLONG 1
876 +
877 +/* Define to 1 if you have the `lremovexattr' function. */
878 +/* AR7 #define HAVE_LREMOVEXATTR 1 */
879 +
880 +/* Define to 1 if you have the `lseek64' function. */
881 +/* AR7 #define HAVE_LSEEK64 1 */
882 +
883 +/* Define to 1 if you have the `lsetxattr' function. */
884 +/* AR7 #define HAVE_LSETXATTR 1 */
885 +
886 +/* Define to 1 if you have the `lstat64' function. */
887 +/* AR7 #define HAVE_LSTAT64 1 */
888 +
889 +/* Whether the macro for makedev is available */
890 +#define HAVE_MAKEDEV 1
891 +
892 +/* Define to 1 if you have the `memmove' function. */
893 +#define HAVE_MEMMOVE 1
894 +
895 +/* Define to 1 if you have the <memory.h> header file. */
896 +#define HAVE_MEMORY_H 1
897 +
898 +/* Whether memset() is available */
899 +#define HAVE_MEMSET 1
900 +
901 +/* Define to 1 if you have the `mknod' function. */
902 +#define HAVE_MKNOD 1
903 +
904 +/* Define to 1 if you have the `mknod64' function. */
905 +/* #undef HAVE_MKNOD64 */
906 +
907 +/* Define to 1 if you have the `mktime' function. */
908 +#define HAVE_MKTIME 1
909 +
910 +/* Whether mmap works */
911 +#define HAVE_MMAP 1
912 +
913 +/* Define to 1 if you have the <mntent.h> header file. */
914 +#define HAVE_MNTENT_H 1
915 +
916 +/* Define to 1 if you have the `nanosleep' function. */
917 +#define HAVE_NANOSLEEP 1
918 +
919 +/* Whether to use native iconv */
920 +/* AR7 #define HAVE_NATIVE_ICONV 1 */
921 +
922 +/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
923 +/* #undef HAVE_NDIR_H */
924 +
925 +/* Define to 1 if you have the <netinet/in_ip.h> header file. */
926 +/* #undef HAVE_NETINET_IN_IP_H */
927 +
928 +/* Define to 1 if you have the <netinet/in_systm.h> header file. */
929 +#define HAVE_NETINET_IN_SYSTM_H 1
930 +
931 +/* Define to 1 if you have the <netinet/ip.h> header file. */
932 +#define HAVE_NETINET_IP_H 1
933 +
934 +/* Define to 1 if you have the <netinet/tcp.h> header file. */
935 +#define HAVE_NETINET_TCP_H 1
936 +
937 +/* Define to 1 if you have the <net/if.h> header file. */
938 +#define HAVE_NET_IF_H 1
939 +
940 +/* Do we have rl_completion_matches? */
941 +/* AR7 #define HAVE_NEW_LIBREADLINE 1 */
942 +
943 +/* Define to 1 if you have the `nl_langinfo' function. */
944 +#define HAVE_NL_LANGINFO 1
945 +
946 +/* Whether no ACLs support is available */
947 +#define HAVE_NO_ACLS 1
948 +
949 +/* Whether no asynchronous io support is available */
950 +#define HAVE_NO_AIO 1
951 +
952 +/* Define to 1 if you have the <nsswitch.h> header file. */
953 +/* #undef HAVE_NSSWITCH_H */
954 +
955 +/* Define to 1 if you have the <nss_common.h> header file. */
956 +/* #undef HAVE_NSS_COMMON_H */
957 +
958 +/* Define to 1 if you have the <nss.h> header file. */
959 +/* AR7 #define HAVE_NSS_H 1 */
960 +
961 +/* Define to 1 if you have the <ns_api.h> header file. */
962 +/* #undef HAVE_NS_API_H */
963 +
964 +/* Whether off64_t is available */
965 +/* #undef HAVE_OFF64_T */
966 +
967 +/* Define to 1 if you have the `open64' function. */
968 +/* AR7 #define HAVE_OPEN64 1 */
969 +
970 +/* Define to 1 if you have the `opendir64' function. */
971 +/* #undef HAVE_OPENDIR64 */
972 +
973 +/* Defined if struct passwd has pw_age field */
974 +/* #undef HAVE_PASSWD_PW_AGE */
975 +
976 +/* Defined if struct passwd has pw_comment field */
977 +/* #undef HAVE_PASSWD_PW_COMMENT */
978 +
979 +/* Define to 1 if you have the `pathconf' function. */
980 +#define HAVE_PATHCONF 1
981 +
982 +/* Define to 1 if you have the `pipe' function. */
983 +#define HAVE_PIPE 1
984 +
985 +/* Define to 1 if you have the `poll' function. */
986 +#define HAVE_POLL 1
987 +
988 +/* Define to 1 if you have the <poll.h> header file. */
989 +#define HAVE_POLL_H 1
990 +
991 +/* Whether POSIX ACLs are available */
992 +/* #undef HAVE_POSIX_ACLS */
993 +
994 +/* Whether prctl is available */
995 +#define HAVE_PRCTL 1
996 +
997 +/* Define to 1 if you have the `pread' function. */
998 +#define HAVE_PREAD 1
999 +
1000 +/* Define to 1 if you have the `pread64' function. */
1001 +/* AR7 #define HAVE_PREAD64 1 */
1002 +
1003 +/* Define to 1 if you have the `putprpwnam' function. */
1004 +/* #undef HAVE_PUTPRPWNAM */
1005 +
1006 +/* Define to 1 if you have the `pututline' function. */
1007 +#define HAVE_PUTUTLINE 1
1008 +
1009 +/* Define to 1 if you have the `pututxline' function. */
1010 +#define HAVE_PUTUTXLINE 1
1011 +
1012 +/* Define to 1 if you have the `pwrite' function. */
1013 +#define HAVE_PWRITE 1
1014 +
1015 +/* Define to 1 if you have the `pwrite64' function. */
1016 +/* AR7 #define HAVE_PWRITE64 1 */
1017 +
1018 +/* Whether CRAY int quotactl (char *spec, int request, char *arg); is
1019 +   available */
1020 +/* #undef HAVE_QUOTACTL_3 */
1021 +
1022 +/* Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is
1023 +   available */
1024 +/* #undef HAVE_QUOTACTL_4A */
1025 +
1026 +/* Whether int quotactl(const char *path, int cmd, int id, char *addr) is
1027 +   available */
1028 +/* #undef HAVE_QUOTACTL_4B */
1029 +
1030 +/* Whether Linux quota support is available */
1031 +/* AR7 #define HAVE_QUOTACTL_LINUX 1 */
1032 +
1033 +/* Define to 1 if you have the `rand' function. */
1034 +#define HAVE_RAND 1
1035 +
1036 +/* Define to 1 if you have the `random' function. */
1037 +#define HAVE_RANDOM 1
1038 +
1039 +/* Define to 1 if you have the `rdchk' function. */
1040 +/* #undef HAVE_RDCHK */
1041 +
1042 +/* Define to 1 if you have the `readdir64' function. */
1043 +/* AR7 #define HAVE_READDIR64 1 */
1044 +
1045 +/* Define to 1 if you have the <readline.h> header file. */
1046 +/* #undef HAVE_READLINE_H */
1047 +
1048 +/* Define to 1 if you have the <readline/history.h> header file. */
1049 +#define HAVE_READLINE_HISTORY_H 1
1050 +
1051 +/* Define to 1 if you have the <readline/readline.h> header file. */
1052 +#define HAVE_READLINE_READLINE_H 1
1053 +
1054 +/* Define to 1 if you have the `readlink' function. */
1055 +#define HAVE_READLINK 1
1056 +
1057 +/* Define to 1 if you have the `realpath' function. */
1058 +#define HAVE_REALPATH 1
1059 +
1060 +/* Define to 1 if you have the `removexattr' function. */
1061 +/* AR7 #define HAVE_REMOVEXATTR 1 */
1062 +
1063 +/* Define to 1 if you have the `rename' function. */
1064 +#define HAVE_RENAME 1
1065 +
1066 +/* Define to 1 if you have the `rewinddir64' function. */
1067 +/* #undef HAVE_REWINDDIR64 */
1068 +
1069 +/* Define to 1 if you have the `roken_getaddrinfo_hostspec' function. */
1070 +/* #undef HAVE_ROKEN_GETADDRINFO_HOSTSPEC */
1071 +
1072 +/* Whether current user is root */
1073 +/* #undef HAVE_ROOT */
1074 +
1075 +/* Define to 1 if you have the <rpcsvc/nis.h> header file. */
1076 +#define HAVE_RPCSVC_NIS_H 1
1077 +
1078 +/* Define to 1 if you have the <rpcsvc/ypclnt.h> header file. */
1079 +#define HAVE_RPCSVC_YPCLNT_H 1
1080 +
1081 +/* Define to 1 if you have the <rpcsvc/yp_prot.h> header file. */
1082 +#define HAVE_RPCSVC_YP_PROT_H 1
1083 +
1084 +/* Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h */
1085 +/* #undef HAVE_RPC_AUTH_ERROR_CONFLICT */
1086 +
1087 +/* Define to 1 if you have the <rpc/nettype.h> header file. */
1088 +/* #undef HAVE_RPC_NETTYPE_H */
1089 +
1090 +/* Define to 1 if you have the <rpc/rpc.h> header file. */
1091 +#define HAVE_RPC_RPC_H 1
1092 +
1093 +/* Whether mkstemp is secure */
1094 +#define HAVE_SECURE_MKSTEMP 1
1095 +
1096 +/* Define to 1 if you have the <security/pam_appl.h> header file. */
1097 +#define HAVE_SECURITY_PAM_APPL_H 1
1098 +
1099 +/* Define to 1 if you have the <security/pam_modules.h> header file. */
1100 +#define HAVE_SECURITY_PAM_MODULES_H 1
1101 +
1102 +/* Define to 1 if you have the <security/_pam_macros.h> header file. */
1103 +#define HAVE_SECURITY__PAM_MACROS_H 1
1104 +
1105 +/* Define to 1 if you have the `seekdir64' function. */
1106 +/* #undef HAVE_SEEKDIR64 */
1107 +
1108 +/* Define to 1 if you have the `select' function. */
1109 +#define HAVE_SELECT 1
1110 +
1111 +/* Whether sendfile() is available */
1112 +/* #undef HAVE_SENDFILE */
1113 +
1114 +/* Whether sendfile64() is available */
1115 +/* AR7 #define HAVE_SENDFILE64 1 */
1116 +
1117 +/* Whether sendfilev() is available */
1118 +/* #undef HAVE_SENDFILEV */
1119 +
1120 +/* Whether sendfilev64() is available */
1121 +/* #undef HAVE_SENDFILEV64 */
1122 +
1123 +/* Define to 1 if you have the `setbuffer' function. */
1124 +#define HAVE_SETBUFFER 1
1125 +
1126 +/* Define to 1 if you have the `setenv' function. */
1127 +#define HAVE_SETENV 1
1128 +
1129 +/* Define to 1 if you have the `setgidx' function. */
1130 +/* #undef HAVE_SETGIDX */
1131 +
1132 +/* Define to 1 if you have the `setgroups' function. */
1133 +#define HAVE_SETGROUPS 1
1134 +
1135 +/* Define to 1 if you have the `setlinebuf' function. */
1136 +#define HAVE_SETLINEBUF 1
1137 +
1138 +/* Define to 1 if you have the `setlocale' function. */
1139 +#define HAVE_SETLOCALE 1
1140 +
1141 +/* Define to 1 if you have the `setluid' function. */
1142 +/* #undef HAVE_SETLUID */
1143 +
1144 +/* Define to 1 if you have the `setmntent' function. */
1145 +#define HAVE_SETMNTENT 1
1146 +
1147 +/* Define to 1 if you have the `setnetgrent' function. */
1148 +#define HAVE_SETNETGRENT 1
1149 +
1150 +/* Define to 1 if you have the `setpgid' function. */
1151 +#define HAVE_SETPGID 1
1152 +
1153 +/* Define to 1 if you have the `setpriv' function. */
1154 +/* #undef HAVE_SETPRIV */
1155 +
1156 +/* Whether the system has setresgid */
1157 +#define HAVE_SETRESGID 1
1158 +
1159 +/* Whether setresgid() is available */
1160 +#define HAVE_SETRESGID_DECL 1
1161 +
1162 +/* Whether the system has setresuid */
1163 +#define HAVE_SETRESUID 1
1164 +
1165 +/* Whether setresuid() is available */
1166 +#define HAVE_SETRESUID_DECL 1
1167 +
1168 +/* Define to 1 if you have the `setsid' function. */
1169 +#define HAVE_SETSID 1
1170 +
1171 +/* Define to 1 if you have the `setuidx' function. */
1172 +/* #undef HAVE_SETUIDX */
1173 +
1174 +/* Define to 1 if you have the `setxattr' function. */
1175 +/* AR7 #define HAVE_SETXATTR 1 */
1176 +
1177 +/* Define to 1 if you have the `set_auth_parameters' function. */
1178 +/* #undef HAVE_SET_AUTH_PARAMETERS */
1179 +
1180 +/* Define to 1 if you have the <shadow.h> header file. */
1181 +#define HAVE_SHADOW_H 1
1182 +
1183 +/* Define to 1 if you have the `shmget' function. */
1184 +#define HAVE_SHMGET 1
1185 +
1186 +/* Define to 1 if you have the `shm_open' function. */
1187 +/* #undef HAVE_SHM_OPEN */
1188 +
1189 +/* Define to 1 if you have the `sigaction' function. */
1190 +#define HAVE_SIGACTION 1
1191 +
1192 +/* Define to 1 if you have the `sigblock' function. */
1193 +#define HAVE_SIGBLOCK 1
1194 +
1195 +/* Define to 1 if you have the `sigprocmask' function. */
1196 +#define HAVE_SIGPROCMASK 1
1197 +
1198 +/* Define to 1 if you have the `sigset' function. */
1199 +#define HAVE_SIGSET 1
1200 +
1201 +/* Whether we have the atomic_t variable type */
1202 +#define HAVE_SIG_ATOMIC_T_TYPE 1
1203 +
1204 +/* Define to 1 if you have the `snprintf' function. */
1205 +#define HAVE_SNPRINTF 1
1206 +
1207 +/* Whether snprintf() is available */
1208 +#define HAVE_SNPRINTF_DECL 1
1209 +
1210 +/* Whether we have the variable type socklen_t */
1211 +#define HAVE_SOCKLEN_T_TYPE 1
1212 +
1213 +/* Whether the sockaddr_in struct has a sin_len property */
1214 +/* #undef HAVE_SOCK_SIN_LEN */
1215 +
1216 +/* Whether solaris ACLs are available */
1217 +/* #undef HAVE_SOLARIS_ACLS */
1218 +
1219 +/* Define to 1 if you have the `srand' function. */
1220 +#define HAVE_SRAND 1
1221 +
1222 +/* Define to 1 if you have the `srandom' function. */
1223 +#define HAVE_SRANDOM 1
1224 +
1225 +/* Whether stat64() is available */
1226 +/* AR7 #define HAVE_STAT64 1 */
1227 +
1228 +/* whether struct stat has sub-second timestamps */
1229 +/* AR7 #define HAVE_STAT_HIRES_TIMESTAMPS 1 */
1230 +
1231 +/* whether struct stat contains st_atim */
1232 +#define HAVE_STAT_ST_ATIM 1
1233 +
1234 +/* Whether the stat struct has a st_blksize property */
1235 +#define HAVE_STAT_ST_BLKSIZE 1
1236 +
1237 +/* Whether the stat struct has a st_block property */
1238 +#define HAVE_STAT_ST_BLOCKS 1
1239 +
1240 +/* whether struct stat contains st_ctim */
1241 +#define HAVE_STAT_ST_CTIM 1
1242 +
1243 +/* whether struct stat contains st_mtim */
1244 +#define HAVE_STAT_ST_MTIM 1
1245 +
1246 +/* Define to 1 if you have the <stdarg.h> header file. */
1247 +#define HAVE_STDARG_H 1
1248 +
1249 +/* Define to 1 if you have the <stdint.h> header file. */
1250 +#define HAVE_STDINT_H 1
1251 +
1252 +/* Define to 1 if you have the <stdlib.h> header file. */
1253 +#define HAVE_STDLIB_H 1
1254 +
1255 +/* Define to 1 if you have the `strcasecmp' function. */
1256 +#define HAVE_STRCASECMP 1
1257 +
1258 +/* Define to 1 if you have the `strchr' function. */
1259 +#define HAVE_STRCHR 1
1260 +
1261 +/* Define to 1 if you have the `strdup' function. */
1262 +#define HAVE_STRDUP 1
1263 +
1264 +/* Define to 1 if you have the `strerror' function. */
1265 +#define HAVE_STRERROR 1
1266 +
1267 +/* Define to 1 if you have the `strftime' function. */
1268 +#define HAVE_STRFTIME 1
1269 +
1270 +/* Define to 1 if you have the <strings.h> header file. */
1271 +#define HAVE_STRINGS_H 1
1272 +
1273 +/* Define to 1 if you have the <string.h> header file. */
1274 +#define HAVE_STRING_H 1
1275 +
1276 +/* Define to 1 if you have the `strlcat' function. */
1277 +/* #undef HAVE_STRLCAT */
1278 +
1279 +/* Define to 1 if you have the `strlcpy' function. */
1280 +/* #undef HAVE_STRLCPY */
1281 +
1282 +/* Define to 1 if you have the `strndup' function. */
1283 +#define HAVE_STRNDUP 1
1284 +
1285 +/* Define to 1 if you have the `strnlen' function. */
1286 +#define HAVE_STRNLEN 1
1287 +
1288 +/* Define to 1 if you have the <stropts.h> header file. */
1289 +/* AR7 #define HAVE_STROPTS_H 1 */
1290 +
1291 +/* Define to 1 if you have the `strpbrk' function. */
1292 +#define HAVE_STRPBRK 1
1293 +
1294 +/* Define to 1 if you have the `strtoul' function. */
1295 +#define HAVE_STRTOUL 1
1296 +
1297 +/* Whether the 'DIR64' abstract data type is available */
1298 +/* #undef HAVE_STRUCT_DIR64 */
1299 +
1300 +/* Whether the 'dirent64' struct is available */
1301 +/* AR7 #define HAVE_STRUCT_DIRENT64 1 */
1302 +
1303 +/* Whether the flock64 struct is available */
1304 +/* AR7 #define HAVE_STRUCT_FLOCK64 1 */
1305 +
1306 +/* Define to 1 if `method_attrlist' is member of `struct secmethod_table'. */
1307 +/* #undef HAVE_STRUCT_SECMETHOD_TABLE_METHOD_ATTRLIST */
1308 +
1309 +/* Define to 1 if `method_version' is member of `struct secmethod_table'. */
1310 +/* #undef HAVE_STRUCT_SECMETHOD_TABLE_METHOD_VERSION */
1311 +
1312 +/* Define to 1 if `st_rdev' is member of `struct stat'. */
1313 +#define HAVE_STRUCT_STAT_ST_RDEV 1
1314 +
1315 +/* Whether we have struct timespec */
1316 +#define HAVE_STRUCT_TIMESPEC 1
1317 +
1318 +/* Define to 1 if your `struct stat' has `st_rdev'. Deprecated, use
1319 +   `HAVE_STRUCT_STAT_ST_RDEV' instead. */
1320 +#define HAVE_ST_RDEV 1
1321 +
1322 +/* Define to 1 if you have the `symlink' function. */
1323 +#define HAVE_SYMLINK 1
1324 +
1325 +/* Define to 1 if you have the `syscall' function. */
1326 +#define HAVE_SYSCALL 1
1327 +
1328 +/* Define to 1 if you have the <syscall.h> header file. */
1329 +#define HAVE_SYSCALL_H 1
1330 +
1331 +/* Define to 1 if you have the `sysconf' function. */
1332 +#define HAVE_SYSCONF 1
1333 +
1334 +/* Define to 1 if you have the `syslog' function. */
1335 +#define HAVE_SYSLOG 1
1336 +
1337 +/* Define to 1 if you have the <syslog.h> header file. */
1338 +#define HAVE_SYSLOG_H 1
1339 +
1340 +/* Define to 1 if you have the <sys/acl.h> header file. */
1341 +/* #undef HAVE_SYS_ACL_H */
1342 +
1343 +/* Define to 1 if you have the <sys/attributes.h> header file. */
1344 +/* #undef HAVE_SYS_ATTRIBUTES_H */
1345 +
1346 +/* Define to 1 if you have the <sys/capability.h> header file. */
1347 +/* #undef HAVE_SYS_CAPABILITY_H */
1348 +
1349 +/* Define to 1 if you have the <sys/cdefs.h> header file. */
1350 +#define HAVE_SYS_CDEFS_H 1
1351 +
1352 +/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
1353 +   */
1354 +/* #undef HAVE_SYS_DIR_H */
1355 +
1356 +/* Define to 1 if you have the <sys/dustat.h> header file. */
1357 +/* #undef HAVE_SYS_DUSTAT_H */
1358 +
1359 +/* Define to 1 if you have the <sys/extattr.h> header file. */
1360 +/* #undef HAVE_SYS_EXTATTR_H */
1361 +
1362 +/* Define to 1 if you have the <sys/fcntl.h> header file. */
1363 +#define HAVE_SYS_FCNTL_H 1
1364 +
1365 +/* Define to 1 if you have the <sys/filio.h> header file. */
1366 +/* #undef HAVE_SYS_FILIO_H */
1367 +
1368 +/* Define to 1 if you have the <sys/filsys.h> header file. */
1369 +/* #undef HAVE_SYS_FILSYS_H */
1370 +
1371 +/* Define to 1 if you have the <sys/fs/s5param.h> header file. */
1372 +/* #undef HAVE_SYS_FS_S5PARAM_H */
1373 +
1374 +/* Define to 1 if you have the <sys/fs/vx_quota.h> header file. */
1375 +/* #undef HAVE_SYS_FS_VX_QUOTA_H */
1376 +
1377 +/* Define to 1 if you have the <sys/id.h> header file. */
1378 +/* #undef HAVE_SYS_ID_H */
1379 +
1380 +/* Define to 1 if you have the <sys/ioctl.h> header file. */
1381 +#define HAVE_SYS_IOCTL_H 1
1382 +
1383 +/* Define to 1 if you have the <sys/ipc.h> header file. */
1384 +#define HAVE_SYS_IPC_H 1
1385 +
1386 +/* Define to 1 if you have the <sys/mman.h> header file. */
1387 +#define HAVE_SYS_MMAN_H 1
1388 +
1389 +/* Define to 1 if you have the <sys/mode.h> header file. */
1390 +/* #undef HAVE_SYS_MODE_H */
1391 +
1392 +/* Define to 1 if you have the <sys/mount.h> header file. */
1393 +#define HAVE_SYS_MOUNT_H 1
1394 +
1395 +/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
1396 +   */
1397 +/* #undef HAVE_SYS_NDIR_H */
1398 +
1399 +/* Define to 1 if you have the <sys/param.h> header file. */
1400 +#define HAVE_SYS_PARAM_H 1
1401 +
1402 +/* Define to 1 if you have the <sys/prctl.h> header file. */
1403 +#define HAVE_SYS_PRCTL_H 1
1404 +
1405 +/* Define to 1 if you have the <sys/priv.h> header file. */
1406 +/* #undef HAVE_SYS_PRIV_H */
1407 +
1408 +/* Whether the new lib/sysquotas.c interface can be used */
1409 +/* AR7 #define HAVE_SYS_QUOTAS 1 */
1410 +
1411 +/* Define to 1 if you have the <sys/quota.h> header file. */
1412 +/* AR7 #define HAVE_SYS_QUOTA_H 1 */
1413 +
1414 +/* Define to 1 if you have the <sys/resource.h> header file. */
1415 +#define HAVE_SYS_RESOURCE_H 1
1416 +
1417 +/* Define to 1 if you have the <sys/security.h> header file. */
1418 +/* #undef HAVE_SYS_SECURITY_H */
1419 +
1420 +/* Define to 1 if you have the <sys/select.h> header file. */
1421 +#define HAVE_SYS_SELECT_H 1
1422 +
1423 +/* Define to 1 if you have the <sys/shm.h> header file. */
1424 +#define HAVE_SYS_SHM_H 1
1425 +
1426 +/* Define to 1 if you have the <sys/socket.h> header file. */
1427 +#define HAVE_SYS_SOCKET_H 1
1428 +
1429 +/* Define to 1 if you have the <sys/sockio.h> header file. */
1430 +/* #undef HAVE_SYS_SOCKIO_H */
1431 +
1432 +/* Define to 1 if you have the <sys/statfs.h> header file. */
1433 +#define HAVE_SYS_STATFS_H 1
1434 +
1435 +/* Define to 1 if you have the <sys/statvfs.h> header file. */
1436 +#define HAVE_SYS_STATVFS_H 1
1437 +
1438 +/* Define to 1 if you have the <sys/stat.h> header file. */
1439 +#define HAVE_SYS_STAT_H 1
1440 +
1441 +/* Define to 1 if you have the <sys/syscall.h> header file. */
1442 +#define HAVE_SYS_SYSCALL_H 1
1443 +
1444 +/* Define to 1 if you have the <sys/syslog.h> header file. */
1445 +#define HAVE_SYS_SYSLOG_H 1
1446 +
1447 +/* Define to 1 if you have the <sys/sysmacros.h> header file. */
1448 +#define HAVE_SYS_SYSMACROS_H 1
1449 +
1450 +/* Define to 1 if you have the <sys/termio.h> header file. */
1451 +/* #undef HAVE_SYS_TERMIO_H */
1452 +
1453 +/* Define to 1 if you have the <sys/time.h> header file. */
1454 +#define HAVE_SYS_TIME_H 1
1455 +
1456 +/* Define to 1 if you have the <sys/types.h> header file. */
1457 +#define HAVE_SYS_TYPES_H 1
1458 +
1459 +/* Define to 1 if you have the <sys/uio.h> header file. */
1460 +#define HAVE_SYS_UIO_H 1
1461 +
1462 +/* Define to 1 if you have the <sys/unistd.h> header file. */
1463 +#define HAVE_SYS_UNISTD_H 1
1464 +
1465 +/* Define to 1 if you have the <sys/un.h> header file. */
1466 +#define HAVE_SYS_UN_H 1
1467 +
1468 +/* Define to 1 if you have the <sys/vfs.h> header file. */
1469 +#define HAVE_SYS_VFS_H 1
1470 +
1471 +/* Define to 1 if you have the <sys/wait.h> header file. */
1472 +#define HAVE_SYS_WAIT_H 1
1473 +
1474 +/* Define to 1 if you have the <sys/xattr.h> header file. */
1475 +/* AR7 #define HAVE_SYS_XATTR_H 1 */
1476 +
1477 +/* Define to 1 if you have the `telldir64' function. */
1478 +/* #undef HAVE_TELLDIR64 */
1479 +
1480 +/* Define to 1 if you have the <termios.h> header file. */
1481 +#define HAVE_TERMIOS_H 1
1482 +
1483 +/* Define to 1 if you have the <termio.h> header file. */
1484 +#define HAVE_TERMIO_H 1
1485 +
1486 +/* Define to 1 if you have the `timegm' function. */
1487 +/* AR7 #define HAVE_TIMEGM 1 */
1488 +
1489 +/* Whether Tru64 ACLs are available */
1490 +/* #undef HAVE_TRU64_ACLS */
1491 +
1492 +/* Whether crypt needs truncated salt */
1493 +/* #undef HAVE_TRUNCATED_SALT */
1494 +
1495 +/* Whether uint16 typedef is included by rpc/rpc.h */
1496 +/* #undef HAVE_UINT16_FROM_RPC_RPC_H */
1497 +
1498 +/* Whether uint32 typedef is included by rpc/rpc.h */
1499 +/* #undef HAVE_UINT32_FROM_RPC_RPC_H */
1500 +
1501 +/* Define to 1 if you have the <unistd.h> header file. */
1502 +#define HAVE_UNISTD_H 1
1503 +
1504 +/* If we need to build with unixscoket support */
1505 +#define HAVE_UNIXSOCKET 1
1506 +
1507 +/* Whether UnixWare ACLs are available */
1508 +/* #undef HAVE_UNIXWARE_ACLS */
1509 +
1510 +/* Whether the 'unsigned char' type is available */
1511 +/* #undef HAVE_UNSIGNED_CHAR */
1512 +
1513 +/* Define to 1 if you have the `updwtmp' function. */
1514 +#define HAVE_UPDWTMP 1
1515 +
1516 +/* Define to 1 if you have the `updwtmpx' function. */
1517 +#define HAVE_UPDWTMPX 1
1518 +
1519 +/* Define to 1 if you have the `usleep' function. */
1520 +#define HAVE_USLEEP 1
1521 +
1522 +/* Whether struct utimbuf is available */
1523 +#define HAVE_UTIMBUF 1
1524 +
1525 +/* Define to 1 if you have the `utime' function. */
1526 +#define HAVE_UTIME 1
1527 +
1528 +/* Define to 1 if you have the `utimes' function. */
1529 +#define HAVE_UTIMES 1
1530 +
1531 +/* Define to 1 if you have the <utime.h> header file. */
1532 +#define HAVE_UTIME_H 1
1533 +
1534 +/* Define to 1 if you have the <utmpx.h> header file. */
1535 +/* #define HAVE_UTMPX_H 1 */
1536 +
1537 +/* Define to 1 if you have the <utmp.h> header file. */
1538 +#define HAVE_UTMP_H 1
1539 +
1540 +/* Whether the utmp struct has a property ut_addr */
1541 +#define HAVE_UT_UT_ADDR 1
1542 +
1543 +/* Whether the utmp struct has a property ut_exit */
1544 +#define HAVE_UT_UT_EXIT 1
1545 +
1546 +/* Whether the utmp struct has a property ut_host */
1547 +#define HAVE_UT_UT_HOST 1
1548 +
1549 +/* Whether the utmp struct has a property ut_id */
1550 +#define HAVE_UT_UT_ID 1
1551 +
1552 +/* Whether the utmp struct has a property ut_name */
1553 +#define HAVE_UT_UT_NAME 1
1554 +
1555 +/* Whether the utmp struct has a property ut_pid */
1556 +#define HAVE_UT_UT_PID 1
1557 +
1558 +/* Whether the utmp struct has a property ut_time */
1559 +#define HAVE_UT_UT_TIME 1
1560 +
1561 +/* Whether the utmp struct has a property ut_tv */
1562 +#define HAVE_UT_UT_TV 1
1563 +
1564 +/* Whether the utmp struct has a property ut_type */
1565 +#define HAVE_UT_UT_TYPE 1
1566 +
1567 +/* Whether the utmp struct has a property ut_user */
1568 +#define HAVE_UT_UT_USER 1
1569 +
1570 +/* Whether the utmpx struct has a property ut_syslen */
1571 +/* #undef HAVE_UX_UT_SYSLEN */
1572 +
1573 +/* Define to 1 if you have the <valgrind.h> header file. */
1574 +/* #undef HAVE_VALGRIND_H */
1575 +
1576 +/* Define to 1 if you have the <valgrind/memcheck.h> header file. */
1577 +/* #undef HAVE_VALGRIND_MEMCHECK_H */
1578 +
1579 +/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
1580 +/* #undef HAVE_VALGRIND_VALGRIND_H */
1581 +
1582 +/* Define to 1 if you have the `vasprintf' function. */
1583 +#define HAVE_VASPRINTF 1
1584 +
1585 +/* Whether vasprintf() is available */
1586 +#define HAVE_VASPRINTF_DECL 1
1587 +
1588 +/* Whether va_copy() is available */
1589 +#define HAVE_VA_COPY 1
1590 +
1591 +/* Whether the C compiler understands volatile */
1592 +#define HAVE_VOLATILE 1
1593 +
1594 +/* Define to 1 if you have the `vsnprintf' function. */
1595 +#define HAVE_VSNPRINTF 1
1596 +
1597 +/* Whether vsnprintf() is available */
1598 +#define HAVE_VSNPRINTF_DECL 1
1599 +
1600 +/* Define to 1 if you have the `vsyslog' function. */
1601 +#define HAVE_VSYSLOG 1
1602 +
1603 +/* Define to 1 if you have the `waitpid' function. */
1604 +#define HAVE_WAITPID 1
1605 +
1606 +/* Define if you have working AF_LOCAL sockets */
1607 +#define HAVE_WORKING_AF_LOCAL 1
1608 +
1609 +/* Whether the WRFILE:-keytab is supported */
1610 +/* #undef HAVE_WRFILE_KEYTAB */
1611 +
1612 +/* Whether xfs quota support is available */
1613 +/* AR7 #define HAVE_XFS_QUOTAS 1 */
1614 +
1615 +/* Define to 1 if you have the `yp_get_default_domain' function. */
1616 +#define HAVE_YP_GET_DEFAULT_DOMAIN 1
1617 +
1618 +/* Define to 1 if you have the `_acl' function. */
1619 +/* #undef HAVE__ACL */
1620 +
1621 +/* Define to 1 if you have the `_chdir' function. */
1622 +/* #undef HAVE__CHDIR */
1623 +
1624 +/* Define to 1 if you have the `_close' function. */
1625 +/* #undef HAVE__CLOSE */
1626 +
1627 +/* Define to 1 if you have the `_closedir' function. */
1628 +/* #undef HAVE__CLOSEDIR */
1629 +
1630 +/* Define to 1 if you have the `_dup' function. */
1631 +/* #undef HAVE__DUP */
1632 +
1633 +/* Define to 1 if you have the `_dup2' function. */
1634 +/* #undef HAVE__DUP2 */
1635 +
1636 +/* Define to 1 if you have the `_et_list' function. */
1637 +/* #undef HAVE__ET_LIST */
1638 +
1639 +/* Define to 1 if you have the `_facl' function. */
1640 +/* #undef HAVE__FACL */
1641 +
1642 +/* Define to 1 if you have the `_fchdir' function. */
1643 +/* #undef HAVE__FCHDIR */
1644 +
1645 +/* Define to 1 if you have the `_fcntl' function. */
1646 +/* #undef HAVE__FCNTL */
1647 +
1648 +/* Define to 1 if you have the `_fork' function. */
1649 +/* #undef HAVE__FORK */
1650 +
1651 +/* Define to 1 if you have the `_fstat' function. */
1652 +/* #undef HAVE__FSTAT */
1653 +
1654 +/* Define to 1 if you have the `_fstat64' function. */
1655 +/* #undef HAVE__FSTAT64 */
1656 +
1657 +/* Define to 1 if you have the `_getcwd' function. */
1658 +/* #undef HAVE__GETCWD */
1659 +
1660 +/* Define to 1 if you have the `_getdents' function. */
1661 +/* #undef HAVE__GETDENTS */
1662 +
1663 +/* Define to 1 if you have the `_llseek' function. */
1664 +/* #undef HAVE__LLSEEK */
1665 +
1666 +/* Define to 1 if you have the `_lseek' function. */
1667 +/* #undef HAVE__LSEEK */
1668 +
1669 +/* Define to 1 if you have the `_lstat' function. */
1670 +/* #undef HAVE__LSTAT */
1671 +
1672 +/* Define to 1 if you have the `_lstat64' function. */
1673 +/* #undef HAVE__LSTAT64 */
1674 +
1675 +/* Define to 1 if you have the `_open' function. */
1676 +/* #undef HAVE__OPEN */
1677 +
1678 +/* Define to 1 if you have the `_open64' function. */
1679 +/* #undef HAVE__OPEN64 */
1680 +
1681 +/* Define to 1 if you have the `_opendir' function. */
1682 +/* #undef HAVE__OPENDIR */
1683 +
1684 +/* Define to 1 if you have the `_pread' function. */
1685 +/* #undef HAVE__PREAD */
1686 +
1687 +/* Define to 1 if you have the `_pread64' function. */
1688 +/* #undef HAVE__PREAD64 */
1689 +
1690 +/* Define to 1 if you have the `_pwrite' function. */
1691 +/* #undef HAVE__PWRITE */
1692 +
1693 +/* Define to 1 if you have the `_pwrite64' function. */
1694 +/* #undef HAVE__PWRITE64 */
1695 +
1696 +/* Define to 1 if you have the `_read' function. */
1697 +/* #undef HAVE__READ */
1698 +
1699 +/* Define to 1 if you have the `_readdir' function. */
1700 +/* #undef HAVE__READDIR */
1701 +
1702 +/* Define to 1 if you have the `_readdir64' function. */
1703 +/* #undef HAVE__READDIR64 */
1704 +
1705 +/* Define to 1 if you have the `_seekdir' function. */
1706 +/* #undef HAVE__SEEKDIR */
1707 +
1708 +/* Define to 1 if you have the `_stat' function. */
1709 +/* #undef HAVE__STAT */
1710 +
1711 +/* Define to 1 if you have the `_stat64' function. */
1712 +/* #undef HAVE__STAT64 */
1713 +
1714 +/* Define to 1 if you have the `_telldir' function. */
1715 +/* #undef HAVE__TELLDIR */
1716 +
1717 +/* Define to 1 if you have the `_write' function. */
1718 +/* #undef HAVE__WRITE */
1719 +
1720 +/* Define to 1 if you have the `__acl' function. */
1721 +/* #undef HAVE___ACL */
1722 +
1723 +/* Define to 1 if you have the `__chdir' function. */
1724 +/* #undef HAVE___CHDIR */
1725 +
1726 +/* Define to 1 if you have the `__close' function. */
1727 +#define HAVE___CLOSE 1
1728 +
1729 +/* Define to 1 if you have the `__closedir' function. */
1730 +/* #undef HAVE___CLOSEDIR */
1731 +
1732 +/* Define to 1 if you have the `__dup' function. */
1733 +/* #undef HAVE___DUP */
1734 +
1735 +/* Define to 1 if you have the `__dup2' function. */
1736 +#define HAVE___DUP2 1
1737 +
1738 +/* Define to 1 if you have the `__facl' function. */
1739 +/* #undef HAVE___FACL */
1740 +
1741 +/* Define to 1 if you have the `__fchdir' function. */
1742 +/* #undef HAVE___FCHDIR */
1743 +
1744 +/* Define to 1 if you have the `__fcntl' function. */
1745 +#define HAVE___FCNTL 1
1746 +
1747 +/* Define to 1 if you have the `__fork' function. */
1748 +#define HAVE___FORK 1
1749 +
1750 +/* Define to 1 if you have the `__fstat' function. */
1751 +#define HAVE___FSTAT 1
1752 +
1753 +/* Define to 1 if you have the `__fstat64' function. */
1754 +/* #undef HAVE___FSTAT64 */
1755 +
1756 +/* Define to 1 if you have the `__fxstat' function. */
1757 +#define HAVE___FXSTAT 1
1758 +
1759 +/* Define to 1 if you have the `__getcwd' function. */
1760 +/* #undef HAVE___GETCWD */
1761 +
1762 +/* Define to 1 if you have the `__getdents' function. */
1763 +/* #undef HAVE___GETDENTS */
1764 +
1765 +/* Define to 1 if you have the `__llseek' function. */
1766 +/* #undef HAVE___LLSEEK */
1767 +
1768 +/* Define to 1 if you have the `__lseek' function. */
1769 +#define HAVE___LSEEK 1
1770 +
1771 +/* Define to 1 if you have the `__lstat' function. */
1772 +#define HAVE___LSTAT 1
1773 +
1774 +/* Define to 1 if you have the `__lstat64' function. */
1775 +/* #undef HAVE___LSTAT64 */
1776 +
1777 +/* Define to 1 if you have the `__lxstat' function. */
1778 +#define HAVE___LXSTAT 1
1779 +
1780 +/* Define to 1 if you have the `__open' function. */
1781 +#define HAVE___OPEN 1
1782 +
1783 +/* Define to 1 if you have the `__open64' function. */
1784 +/* AR7 #define HAVE___OPEN64 1 */
1785 +
1786 +/* Define to 1 if you have the `__opendir' function. */
1787 +/* #undef HAVE___OPENDIR */
1788 +
1789 +/* Define to 1 if you have the `__pread' function. */
1790 +/* #undef HAVE___PREAD */
1791 +
1792 +/* Define to 1 if you have the `__pread64' function. */
1793 +/* AR7 #define HAVE___PREAD64 1 */
1794 +
1795 +/* Define to 1 if you have the `__pwrite' function. */
1796 +/* #undef HAVE___PWRITE */
1797 +
1798 +/* Define to 1 if you have the `__pwrite64' function. */
1799 +/* AR7 #define HAVE___PWRITE64 1 */
1800 +
1801 +/* Define to 1 if you have the `__read' function. */
1802 +#define HAVE___READ 1
1803 +
1804 +/* Define to 1 if you have the `__readdir' function. */
1805 +/* #undef HAVE___READDIR */
1806 +
1807 +/* Define to 1 if you have the `__readdir64' function. */
1808 +/* #undef HAVE___READDIR64 */
1809 +
1810 +/* Define to 1 if you have the `__seekdir' function. */
1811 +/* #undef HAVE___SEEKDIR */
1812 +
1813 +/* Define to 1 if you have the `__stat' function. */
1814 +#define HAVE___STAT 1
1815 +
1816 +/* Define to 1 if you have the `__stat64' function. */
1817 +/* #undef HAVE___STAT64 */
1818 +
1819 +/* Define to 1 if you have the `__sys_llseek' function. */
1820 +/* #undef HAVE___SYS_LLSEEK */
1821 +
1822 +/* Define to 1 if you have the `__telldir' function. */
1823 +/* #undef HAVE___TELLDIR */
1824 +
1825 +/* Whether __va_copy() is available */
1826 +/* #undef HAVE___VA_COPY */
1827 +
1828 +/* Define to 1 if you have the `__write' function. */
1829 +#define HAVE___WRITE 1
1830 +
1831 +/* Define to 1 if you have the `__xstat' function. */
1832 +#define HAVE___XSTAT 1
1833 +
1834 +/* Whether the host os is HPUX */
1835 +/* #undef HPUX */
1836 +
1837 +/* Whether the hpux sendfile() API is available */
1838 +/* #undef HPUX_SENDFILE_API */
1839 +
1840 +/* Whether to use intel spinlocks */
1841 +/* #undef INTEL_SPINLOCKS */
1842 +
1843 +/* Whether the host os is irix */
1844 +/* #undef IRIX */
1845 +
1846 +/* Whether the host os is irix6 */
1847 +/* #undef IRIX6 */
1848 +
1849 +/* Whether krb5_princ_realm returns krb5_realm or krb5_data */
1850 +/* #undef KRB5_PRINC_REALM_RETURNS_REALM */
1851 +
1852 +/* Number of arguments to ldap_set_rebind_proc */
1853 +/* #undef LDAP_SET_REBIND_PROC_ARGS */
1854 +
1855 +/* Whether the host os is linux */
1856 +#define LINUX 1
1857 +
1858 +/* Whether (linux) sendfile() is broken */
1859 +/* #undef LINUX_BROKEN_SENDFILE_API */
1860 +
1861 +/* Whether linux sendfile() API is available */
1862 +#define LINUX_SENDFILE_API 1
1863 +
1864 +/* Whether to use mips spinlocks */
1865 +/* #undef MIPS_SPINLOCKS */
1866 +
1867 +/* Whether MMAP is broken */
1868 +/* #undef MMAP_BLACKLIST */
1869 +
1870 +/* Whether the host os is NeXT v2 */
1871 +/* #undef NEXT2 */
1872 +
1873 +/* Define to 1 if your C compiler doesn't accept -c and -o together. */
1874 +/* #undef NO_MINUS_C_MINUS_O */
1875 +
1876 +/* Whether the host os is osf1 */
1877 +/* #undef OSF1 */
1878 +
1879 +/* Define to the address where bug reports for this package should be sent. */
1880 +#define PACKAGE_BUGREPORT ""
1881 +
1882 +/* Define to the full name of this package. */
1883 +#define PACKAGE_NAME ""
1884 +
1885 +/* Define to the full name and version of this package. */
1886 +#define PACKAGE_STRING ""
1887 +
1888 +/* Define to the one symbol short name of this package. */
1889 +#define PACKAGE_TARNAME ""
1890 +
1891 +/* Define to the version of this package. */
1892 +#define PACKAGE_VERSION ""
1893 +
1894 +/* Does a POSIX ACL need a mask element */
1895 +/* #undef POSIX_ACL_NEEDS_MASK */
1896 +
1897 +/* Whether to use powerpc spinlocks */
1898 +/* #undef POWERPC_SPINLOCKS */
1899 +
1900 +/* Whether pututline returns pointer */
1901 +#define PUTUTLINE_RETURNS_UTMP 1
1902 +
1903 +/* Whether the host os is qnx */
1904 +/* #undef QNX */
1905 +
1906 +/* Whether the realpath function allows NULL */
1907 +#define REALPATH_TAKES_NULL 1
1908 +
1909 +/* Whether the host os is reliantunix */
1910 +/* #undef RELIANTUNIX */
1911 +
1912 +/* Whether getpass should be replaced */
1913 +#define REPLACE_GETPASS 1
1914 +
1915 +/* Whether inet_ntoa should be replaced */
1916 +/* #undef REPLACE_INET_NTOA */
1917 +
1918 +/* Define as the return type of signal handlers (`int' or `void'). */
1919 +#define RETSIGTYPE void
1920 +
1921 +/* Whether the host os is sco unix */
1922 +/* #undef SCO */
1923 +
1924 +/* Whether seekdir returns void */
1925 +#define SEEKDIR_RETURNS_VOID 1
1926 +
1927 +/* The size of the 'ino_t' type */
1928 +/* AR7 #define SIZEOF_INO_T 8 */
1929 +#define SIZEOF_INO_T 4 /* AR7 */
1930 +
1931 +/* The size of a `int', as computed by sizeof. */
1932 +#define SIZEOF_INT 4
1933 +
1934 +/* The size of a `long', as computed by sizeof. */
1935 +#define SIZEOF_LONG 4
1936 +
1937 +/* The size of the 'off_t' type */
1938 +/* AR7 #define SIZEOF_OFF_T 8 */
1939 +#define SIZEOF_OFF_T 4 /* AR7 */
1940 +
1941 +/* The size of a `short', as computed by sizeof. */
1942 +#define SIZEOF_SHORT 2
1943 +
1944 +/* Use socket wrapper library */
1945 +/* #undef SOCKET_WRAPPER */
1946 +
1947 +/* Whether the solaris sendfile() API is available */
1948 +/* #undef SOLARIS_SENDFILE_API */
1949 +
1950 +/* Whether to use sparc spinlocks */
1951 +/* #undef SPARC_SPINLOCKS */
1952 +
1953 +/* Whether statfs requires two arguments and struct statfs has bsize property
1954 +   */
1955 +/* #undef STAT_STATFS2_BSIZE */
1956 +
1957 +/* Whether statfs requires 2 arguments and struct statfs has fsize */
1958 +/* #undef STAT_STATFS2_FSIZE */
1959 +
1960 +/* Whether statfs requires 2 arguments and struct fs_data is available */
1961 +/* #undef STAT_STATFS2_FS_DATA */
1962 +
1963 +/* Whether statfs requires 3 arguments */
1964 +/* #undef STAT_STATFS3_OSF1 */
1965 +
1966 +/* Whether statfs requires 4 arguments */
1967 +/* #undef STAT_STATFS4 */
1968 +
1969 +/* Whether statvfs() is available */
1970 +#define STAT_STATVFS 1 /* AR7 */
1971 +
1972 +/* Whether statvfs64() is available */
1973 +/* AR7 #define STAT_STATVFS64 1 */
1974 +
1975 +/* The size of a block */
1976 +#define STAT_ST_BLOCKSIZE 512
1977 +
1978 +/* Define to 1 if you have the ANSI C header files. */
1979 +#define STDC_HEADERS 1
1980 +
1981 +/* String list of builtin modules */
1982 +#define STRING_STATIC_MODULES " pdb_smbpasswd pdb_tdbsam pdb_guest rpc_lsa rpc_reg rpc_lsa_ds rpc_wks rpc_svcctl rpc_net rpc_dfs rpc_srv rpc_spoolss rpc_eventlog rpc_samr idmap_tdb auth_rhosts auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin"
1983 +
1984 +/* Whether the host os is sunos4 */
1985 +/* #undef SUNOS4 */
1986 +
1987 +/* Whether the host os is solaris */
1988 +/* #undef SUNOS5 */
1989 +
1990 +/* Whether sysconf(_SC_NGROUPS_MAX) is available */
1991 +#define SYSCONF_SC_NGROUPS_MAX 1
1992 +
1993 +/* Whether sysconf(_SC_NPROC_ONLN) is available */
1994 +/* #undef SYSCONF_SC_NPROC_ONLN */
1995 +
1996 +/* Whether this is a system V system */
1997 +/* #undef SYSV */
1998 +
1999 +/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
2000 +#define TIME_WITH_SYS_TIME 1
2001 +
2002 +/* Whether the host os is unixware */
2003 +/* #undef UNIXWARE */
2004 +
2005 +/* Whether to use both of HPUX' crypt calls */
2006 +/* #undef USE_BOTH_CRYPT_CALLS */
2007 +
2008 +/* Whether seteuid() is available */
2009 +/* #undef USE_SETEUID */
2010 +
2011 +/* Whether setresuid() is available */
2012 +#define USE_SETRESUID 1
2013 +
2014 +/* Whether setreuid() is available */
2015 +/* #undef USE_SETREUID */
2016 +
2017 +/* Whether setuidx() is available */
2018 +/* #undef USE_SETUIDX */
2019 +
2020 +/* Whether to use spin locks instead of fcntl locks */
2021 +/* #undef USE_SPINLOCKS */
2022 +
2023 +/* Whether to include Active Directory support */
2024 +/* #undef WITH_ADS */
2025 +
2026 +/* Whether to include AFS clear-text auth support */
2027 +/* #undef WITH_AFS */
2028 +
2029 +/* Using asynchronous io */
2030 +/* #undef WITH_AIO */
2031 +
2032 +/* Whether to include automount support */
2033 +/* #undef WITH_AUTOMOUNT */
2034 +
2035 +/* Whether to include DFS support */
2036 +/* #undef WITH_DFS */
2037 +
2038 +/* Whether to include AFS fake-kaserver support */
2039 +/* #undef WITH_FAKE_KASERVER */
2040 +
2041 +/* Whether to include 2.2 compatible LDAP SAM configuration */
2042 +/* #undef WITH_LDAP_SAMCONFIG */
2043 +
2044 +/* Whether to include nisplus_home support */
2045 +/* #undef WITH_NISPLUS_HOME */
2046 +
2047 +/* Whether to include PAM support */
2048 +/* #undef WITH_PAM */
2049 +
2050 +/* Whether to use profiling */
2051 +/* #undef WITH_PROFILE */
2052 +
2053 +/* Whether to use disk quota support */
2054 +/* AR7 #define WITH_QUOTAS 1 */
2055 +
2056 +/* Whether to include sendfile() support */
2057 +#define WITH_SENDFILE 1
2058 +
2059 +/* Whether to build smbmount */
2060 +/* #undef WITH_SMBMOUNT */
2061 +
2062 +/* Whether to include smbwrapper support */
2063 +/* #undef WITH_SMBWRAPPER */
2064 +
2065 +/* Whether to include experimental syslog support */
2066 +/* #undef WITH_SYSLOG */
2067 +
2068 +/* Whether to include experimental utmp accounting */
2069 +#define WITH_UTMP 1
2070 +
2071 +/* Whether to build winbind */
2072 +#define WITH_WINBIND 1
2073 +
2074 +/* Define to 1 if your processor stores words with the most significant byte
2075 +   first (like Motorola and SPARC, unlike Intel and VAX). */
2076 +/* #undef WORDS_BIGENDIAN */
2077 +
2078 +/* Required alignment */
2079 +/* #undef _ALIGNMENT_REQUIRED */
2080 +
2081 +/* File offset bits */
2082 +#ifdef WITH_LFS
2083 +#define _FILE_OFFSET_BITS 64 /* Large File Support */
2084 +#endif
2085 +
2086 +/* Whether to use GNU libc extensions */
2087 +#define _GNU_SOURCE 1
2088 +
2089 +/* Whether to use HPUX extensions */
2090 +/* #undef _HPUX_SOURCE */
2091 +
2092 +/* Whether to enable large file support */
2093 +/* AR7 #define _LARGEFILE64_SOURCE 1 */
2094 +
2095 +/* Whether to enable large file support */
2096 +/* #undef _LARGE_FILES */
2097 +
2098 +/* Maximum alignment */
2099 +/* #undef _MAX_ALIGNMENT */
2100 +
2101 +/* Whether to enable POSIX support */
2102 +/* #undef _POSIX_C_SOURCE */
2103 +
2104 +/* Whether to use POSIX compatible functions */
2105 +/* #undef _POSIX_SOURCE */
2106 +
2107 +/* Whether to enable System V compatibility */
2108 +/* #undef _SYSV */
2109 +
2110 +/* Define to 1 if type `char' is unsigned and you are not using gcc.  */
2111 +#ifndef __CHAR_UNSIGNED__
2112 +/* # undef __CHAR_UNSIGNED__ */
2113 +#endif
2114 +
2115 +/* Whether to build auth_builtin as shared module */
2116 +/* #undef auth_builtin_init */
2117 +
2118 +/* Whether to build auth_domain as shared module */
2119 +/* #undef auth_domain_init */
2120 +
2121 +/* Whether to build auth_rhosts as shared module */
2122 +/* #undef auth_rhosts_init */
2123 +
2124 +/* Whether to build auth_sam as shared module */
2125 +/* #undef auth_sam_init */
2126 +
2127 +/* Whether to build auth_server as shared module */
2128 +/* #undef auth_server_init */
2129 +
2130 +/* Whether to build auth_unix as shared module */
2131 +/* #undef auth_unix_init */
2132 +
2133 +/* Whether to build auth_winbind as shared module */
2134 +/* #undef auth_winbind_init */
2135 +
2136 +/* Whether to build charset_CP437 as shared module */
2137 +#define charset_CP437_init init_module
2138 +
2139 +/* Whether to build charset_CP850 as shared module */
2140 +#define charset_CP850_init init_module
2141 +
2142 +/* Whether to build charset_macosxfs as shared module */
2143 +/* #undef charset_macosxfs_init */
2144 +
2145 +/* Whether to build charset_weird as shared module */
2146 +/* #undef charset_weird_init */
2147 +
2148 +/* Define to empty if `const' does not conform to ANSI C. */
2149 +/* #undef const */
2150 +
2151 +/* Define to `int' if <sys/types.h> doesn't define. */
2152 +/* #undef gid_t */
2153 +
2154 +/* Whether to build idmap_ad as shared module */
2155 +/* #undef idmap_ad_init */
2156 +
2157 +/* Whether to build idmap_ldap as shared module */
2158 +/* #undef idmap_ldap_init */
2159 +
2160 +/* Whether to build idmap_rid as shared module */
2161 +/* #undef idmap_rid_init */
2162 +
2163 +/* Whether to build idmap_tdb as shared module */
2164 +/* #undef idmap_tdb_init */
2165 +
2166 +/* Define to `__inline__' or `__inline' if that's what the C compiler
2167 +   calls it, or to nothing if 'inline' is not supported under any name.  */
2168 +#ifndef __cplusplus
2169 +/* #undef inline */
2170 +#endif
2171 +
2172 +/* Define to `unsigned' if <sys/types.h> does not define. */
2173 +/* #undef ino_t */
2174 +
2175 +/* Define to `off_t' if <sys/types.h> does not define. */
2176 +/* #undef loff_t */
2177 +
2178 +/* Define to `int' if <sys/types.h> does not define. */
2179 +/* #undef mode_t */
2180 +
2181 +/* Define to `long' if <sys/types.h> does not define. */
2182 +/* #undef off_t */
2183 +
2184 +/* Define to `loff_t' if <sys/types.h> does not define. */
2185 +#define offset_t loff_t
2186 +
2187 +/* Whether to build pdb_guest as shared module */
2188 +/* #undef pdb_guest_init */
2189 +
2190 +/* Whether to build pdb_ldap as shared module */
2191 +/* #undef pdb_ldap_init */
2192 +
2193 +/* Whether to build pdb_mysql as shared module */
2194 +/* #undef pdb_mysql_init */
2195 +
2196 +/* Whether to build pdb_pgsql as shared module */
2197 +/* #undef pdb_pgsql_init */
2198 +
2199 +/* Whether to build pdb_smbpasswd as shared module */
2200 +/* #undef pdb_smbpasswd_init */
2201 +
2202 +/* Whether to build pdb_tdbsam as shared module */
2203 +/* #undef pdb_tdbsam_init */
2204 +
2205 +/* Whether to build pdb_xml as shared module */
2206 +/* #undef pdb_xml_init */
2207 +
2208 +/* Define to `int' if <sys/types.h> does not define. */
2209 +/* #undef pid_t */
2210 +
2211 +/* Whether to build rpc_dfs as shared module */
2212 +/* #undef rpc_dfs_init */
2213 +
2214 +/* Whether to build rpc_echo as shared module */
2215 +/* #undef rpc_echo_init */
2216 +
2217 +/* Whether to build rpc_eventlog as shared module */
2218 +/* #undef rpc_eventlog_init */
2219 +
2220 +/* Whether to build rpc_lsa_ds as shared module */
2221 +/* #undef rpc_lsa_ds_init */
2222 +
2223 +/* Whether to build rpc_lsa as shared module */
2224 +/* #undef rpc_lsa_init */
2225 +
2226 +/* Whether to build rpc_net as shared module */
2227 +/* #undef rpc_net_init */
2228 +
2229 +/* Whether to build rpc_reg as shared module */
2230 +/* #undef rpc_reg_init */
2231 +
2232 +/* Whether to build rpc_samr as shared module */
2233 +/* #undef rpc_samr_init */
2234 +
2235 +/* Whether to build rpc_spoolss as shared module */
2236 +/* #undef rpc_spoolss_init */
2237 +
2238 +/* Whether to build rpc_srv as shared module */
2239 +/* #undef rpc_srv_init */
2240 +
2241 +/* Whether to build rpc_svcctl as shared module */
2242 +/* #undef rpc_svcctl_init */
2243 +
2244 +/* Whether to build rpc_wks as shared module */
2245 +/* #undef rpc_wks_init */
2246 +
2247 +/* Define to `unsigned' if <sys/types.h> does not define. */
2248 +/* #undef size_t */
2249 +
2250 +/* Define to `int' if <sys/types.h> does not define. */
2251 +/* #undef ssize_t */
2252 +
2253 +/* Static init functions */
2254 +/* AR7  #define static_init_auth { auth_rhosts_init(); auth_sam_init(); auth_unix_init(); auth_winbind_init(); auth_server_init(); auth_domain_init(); auth_builtin_init();} */
2255 +#define static_init_auth { auth_sam_init(); auth_builtin_init();}
2256 +
2257 +/* Static init functions */
2258 +#define static_init_charset {}
2259 +
2260 +/* Static init functions */
2261 +#define static_init_idmap { idmap_tdb_init();}
2262 +
2263 +/* Static init functions */
2264 +#define static_init_pdb { pdb_smbpasswd_init(); pdb_tdbsam_init(); /* pdb_guest_init(); */}
2265 +
2266 +/* Static init functions */
2267 +/* AR7 #define static_init_rpc { rpc_lsa_init(); rpc_reg_init(); rpc_lsa_ds_init(); rpc_wks_init(); rpc_svcctl_init(); rpc_net_init(); rpc_dfs_init(); rpc_srv_init(); rpc_spoolss_init(); rpc_eventlog_init(); rpc_samr_init();} */
2268 +#define static_init_rpc { rpc_lsa_init(); /* rpc_reg_init();*/ rpc_lsa_ds_init(); rpc_wks_init(); /* rpc_svcctl_init(); */ rpc_net_init(); rpc_dfs_init(); /* rpc_srv_init(); */ /* rpc_eventlog_init(); */ /* rpc_samr_init(); */}
2269 +
2270 +/* Static init functions */
2271 +#define static_init_vfs {}
2272 +
2273 +/* Define to `int' if <sys/types.h> doesn't define. */
2274 +/* #undef uid_t */
2275 +
2276 +/* Whether to build vfs_afsacl as shared module */
2277 +/* #undef vfs_afsacl_init */
2278 +
2279 +/* Whether to build vfs_audit as shared module */
2280 +#define vfs_audit_init init_module
2281 +
2282 +/* Whether to build vfs_cap as shared module */
2283 +#define vfs_cap_init init_module
2284 +
2285 +/* Whether to build vfs_catia as shared module */
2286 +/* #undef vfs_catia_init */
2287 +
2288 +/* Whether to build vfs_default_quota as shared module */
2289 +#define vfs_default_quota_init init_module
2290 +
2291 +/* Whether to build vfs_expand_msdfs as shared module */
2292 +#define vfs_expand_msdfs_init init_module
2293 +
2294 +/* Whether to build vfs_extd_audit as shared module */
2295 +#define vfs_extd_audit_init init_module
2296 +
2297 +/* Whether to build vfs_fake_perms as shared module */
2298 +#define vfs_fake_perms_init init_module
2299 +
2300 +/* Whether to build vfs_full_audit as shared module */
2301 +#define vfs_full_audit_init init_module
2302 +
2303 +/* Whether to build vfs_netatalk as shared module */
2304 +#define vfs_netatalk_init init_module
2305 +
2306 +/* Whether to build vfs_readonly as shared module */
2307 +#define vfs_readonly_init init_module
2308 +
2309 +/* Whether to build vfs_recycle as shared module */
2310 +#define vfs_recycle_init init_module
2311 +
2312 +/* Whether to build vfs_shadow_copy as shared module */
2313 +#define vfs_shadow_copy_init init_module
2314 +
2315 +/* Define to `unsigned short' if <sys/types.h> does not define. */
2316 +/* #undef wchar_t */
2317 diff -urN samba-3.0.24.orig/source/include/debug.h samba-3.0.24/source/include/debug.h
2318 --- samba-3.0.24.orig/source/include/debug.h    2006-04-20 04:29:39.000000000 +0200
2319 +++ samba-3.0.24/source/include/debug.h 2007-08-07 09:38:18.000000000 +0200
2320 @@ -162,6 +162,26 @@
2321   * will remove the extra conditional test.
2322   */
2323  
2324 +#if 1 /* AR7 */
2325 +
2326 +#define DEBUGLVL( level ) (0)
2327 +#define DEBUGLVLC( dbgc_class, level ) (0)
2328 +#ifndef SAMBA_DEBUG
2329 +#define DEBUG( level, body ) (0)
2330 +#define Log(x) (0)
2331 +#else
2332 +void _fDebug(char *fmt, ...);
2333 +#define DEBUG( level, body ) _fDebug  body
2334 +#define Log(x) _fLog x
2335 +void _fLog(char *fmt, ...);
2336 +#endif
2337 +
2338 +#define DEBUGC( dbgc_class, level, body ) (0)
2339 +#define DEBUGADD( level, body ) (0)
2340 +#define DEBUGADDC( dbgc_class, level, body ) (0)
2341 +
2342 +#else
2343 +
2344  #define DEBUGLVL( level ) \
2345    ( ((level) <= MAX_DEBUG_LEVEL) && \
2346       ((DEBUGLEVEL_CLASS[ DBGC_CLASS ] >= (level))||  \
2347 @@ -208,8 +228,13 @@
2348              DEBUGLEVEL_CLASS[ DBGC_ALL   ] >= (level))  ) \
2349         && (dbgtext body) )
2350  
2351 +#endif /* AR7 */
2352 +
2353 +
2354  /* Print a separator to the debug log. */
2355  #define DEBUGSEP(level)\
2356         DEBUG((level),("===============================================================\n"))
2357  
2358 +
2359 +
2360  #endif
2361 diff -urN samba-3.0.24.orig/source/include/local.h samba-3.0.24/source/include/local.h
2362 --- samba-3.0.24.orig/source/include/local.h    2006-04-20 04:29:39.000000000 +0200
2363 +++ samba-3.0.24/source/include/local.h 2007-07-17 13:19:05.000000000 +0200
2364 @@ -16,7 +16,8 @@
2365     only important messages. This gives *much* smaller binaries
2366  */
2367  #ifndef MAX_DEBUG_LEVEL
2368 -#define MAX_DEBUG_LEVEL 1000
2369 +/* AR7 #define MAX_DEBUG_LEVEL 1000 */
2370 +#define MAX_DEBUG_LEVEL 0
2371  #endif
2372  
2373  /* This defines the section name in the configuration file that will contain */
2374 @@ -49,7 +50,8 @@
2375  #define MAX_DIRECTORY_HANDLES 2048
2376  
2377  /* maximum number of file caches per smbd */
2378 -#define MAX_WRITE_CACHES 10
2379 +/* #define MAX_WRITE_CACHES 10 */
2380 +#define MAX_WRITE_CACHES 2 /* AVM */
2381  
2382  /* define what facility to use for syslog */
2383  #ifndef SYSLOG_FACILITY
2384 diff -urN samba-3.0.24.orig/source/include/smb.h samba-3.0.24/source/include/smb.h
2385 --- samba-3.0.24.orig/source/include/smb.h      2007-02-04 19:59:23.000000000 +0100
2386 +++ samba-3.0.24/source/include/smb.h   2007-08-07 09:38:18.000000000 +0200
2387 @@ -1436,6 +1436,7 @@
2388  #define FLAGS2_LONG_PATH_COMPONENTS    0x0001
2389  #define FLAGS2_EXTENDED_ATTRIBUTES     0x0002
2390  #define FLAGS2_SMB_SECURITY_SIGNATURES 0x0004
2391 +#define FLAGS2_UNKNOWN_BIT4            0x0010
2392  #define FLAGS2_IS_LONG_NAME            0x0040
2393  #define FLAGS2_EXTENDED_SECURITY       0x0800 
2394  #define FLAGS2_DFS_PATHNAMES           0x1000
2395 @@ -1499,7 +1500,8 @@
2396  
2397  /* Remote architectures we know about. */
2398  enum remote_arch_types {RA_UNKNOWN, RA_WFWG, RA_OS2, RA_WIN95, RA_WINNT,
2399 -                       RA_WIN2K, RA_WINXP, RA_WIN2K3, RA_SAMBA, RA_CIFSFS};
2400 +                       RA_WIN2K, RA_WINXP, RA_WIN2K3, RA_VISTA,
2401 +                       RA_SAMBA, RA_CIFSFS};
2402  
2403  /* case handling */
2404  enum case_handling {CASE_LOWER,CASE_UPPER};
2405 diff -urN samba-3.0.24.orig/source/include/smb_macros.h samba-3.0.24/source/include/smb_macros.h
2406 --- samba-3.0.24.orig/source/include/smb_macros.h       2006-04-20 04:29:39.000000000 +0200
2407 +++ samba-3.0.24/source/include/smb_macros.h    2007-08-07 09:38:18.000000000 +0200
2408 @@ -310,7 +310,6 @@
2409  #if defined(PARANOID_MALLOC_CHECKER)
2410  
2411  #define PRS_ALLOC_MEM(ps, type, count) (type *)prs_alloc_mem_((ps),sizeof(type),(count))
2412 -#define PRS_ALLOC_MEM_VOID(ps, size) prs_alloc_mem_((ps),(size),1)
2413  
2414  /* Get medieval on our ass about malloc.... */
2415  
2416 @@ -354,7 +353,6 @@
2417  #define __location__ __FILE__ ":" __LINESTR__
2418  
2419  #define PRS_ALLOC_MEM(ps, type, count) (type *)prs_alloc_mem((ps),sizeof(type),(count))
2420 -#define PRS_ALLOC_MEM_VOID(ps, size) prs_alloc_mem((ps),(size),1)
2421  
2422  /* Regular malloc code. */
2423  
2424 diff -urN samba-3.0.24.orig/source/lib/dummysmbd.c samba-3.0.24/source/lib/dummysmbd.c
2425 --- samba-3.0.24.orig/source/lib/dummysmbd.c    2006-04-20 04:29:23.000000000 +0200
2426 +++ samba-3.0.24/source/lib/dummysmbd.c 2007-08-07 09:38:18.000000000 +0200
2427 @@ -38,3 +38,9 @@
2428  {
2429         return False;
2430  }
2431 +
2432 +NTSTATUS can_delete_directory(struct connection_struct *conn,
2433 +                                const char *dirname)
2434 +{
2435 +       return NT_STATUS_OK;
2436 +}
2437 diff -urN samba-3.0.24.orig/source/lib/fsusage.c samba-3.0.24/source/lib/fsusage.c
2438 --- samba-3.0.24.orig/source/lib/fsusage.c      2005-02-25 18:59:32.000000000 +0100
2439 +++ samba-3.0.24/source/lib/fsusage.c   2007-07-17 13:19:05.000000000 +0200
2440 @@ -51,6 +51,8 @@
2441  #define CONVERT_BLOCKS(B) adjust_blocks ((SMB_BIG_UINT)(B), (SMB_BIG_UINT)fsd.f_fsize, (SMB_BIG_UINT)512)
2442         struct statfs fsd;
2443  
2444 +
2445 +// #error STAT_STATFS3_OSF1
2446         if (statfs (path, &fsd, sizeof (struct statfs)) != 0)
2447                 return -1;
2448  #endif /* STAT_STATFS3_OSF1 */
2449 @@ -59,6 +61,7 @@
2450  #define CONVERT_BLOCKS(B) adjust_blocks ((SMB_BIG_UINT)(B), (SMB_BIG_UINT)1024, (SMB_BIG_UINT)512)     
2451         struct fs_data fsd;
2452         
2453 +// #error STAT_STATFS2_FS_DATA
2454         if (statfs (path, &fsd) != 1)
2455                 return -1;
2456         
2457 @@ -70,6 +73,7 @@
2458  #define CONVERT_BLOCKS(B) adjust_blocks ((SMB_BIG_UINT)(B), (SMB_BIG_UINT)fsd.f_bsize, (SMB_BIG_UINT)512)
2459         struct statfs fsd;
2460         
2461 +// #error STAT_STATFS2_FS_BSIZE
2462         if (statfs (path, &fsd) < 0)
2463                 return -1;
2464         
2465 @@ -93,6 +97,7 @@
2466         
2467         struct statfs fsd;
2468         
2469 +// #error STAT_STATFS2_FSIZE
2470         if (statfs (path, &fsd) < 0)
2471                 return -1;
2472  #endif /* STAT_STATFS2_FSIZE */
2473 @@ -114,6 +119,7 @@
2474         
2475         struct statfs fsd;
2476  
2477 +// #error STAT_STATFS4
2478         if (statfs (path, &fsd, sizeof fsd, 0) < 0)
2479                 return -1;
2480         /* Empirically, the block counts on most SVR3 and SVR3-derived
2481 @@ -127,9 +133,11 @@
2482         adjust_blocks ((SMB_BIG_UINT)(B), fsd.f_frsize ? (SMB_BIG_UINT)fsd.f_frsize : (SMB_BIG_UINT)fsd.f_bsize, (SMB_BIG_UINT)512)
2483  
2484  #ifdef STAT_STATVFS64
2485 +// #error STAT_STATVFS64
2486         struct statvfs64 fsd;
2487         if (statvfs64(path, &fsd) < 0) return -1;
2488  #else
2489 +// #error STAT_STATVFS
2490         struct statvfs fsd;
2491         if (statvfs(path, &fsd) < 0) return -1;
2492  #endif
2493 @@ -139,6 +147,7 @@
2494  #endif /* STAT_STATVFS */
2495  
2496  #ifndef CONVERT_BLOCKS
2497 +#error no STAT_STATxxx defined - we have no dfree code!
2498         /* we don't have any dfree code! */
2499         return -1;
2500  #else
2501 diff -urN samba-3.0.24.orig/source/lib/iconv.c samba-3.0.24/source/lib/iconv.c
2502 --- samba-3.0.24.orig/source/lib/iconv.c        2007-02-04 19:59:17.000000000 +0100
2503 +++ samba-3.0.24/source/lib/iconv.c     2007-07-17 13:19:05.000000000 +0200
2504 @@ -388,7 +388,10 @@
2505  
2506         while (*inbytesleft >= 2 && *outbytesleft >= 1) {
2507                 (*outbuf)[0] = (*inbuf)[0];
2508 -               if ((*inbuf)[1]) ir_count++;
2509 +               if ((*inbuf)[1]) {
2510 +                       ir_count++;
2511 +                       (*outbuf)[0] = '_'; // AR7
2512 +               }
2513                 (*inbytesleft)  -= 2;
2514                 (*outbytesleft) -= 1;
2515                 (*inbuf)  += 2;
2516 diff -urN samba-3.0.24.orig/source/lib/pidfile.c samba-3.0.24/source/lib/pidfile.c
2517 --- samba-3.0.24.orig/source/lib/pidfile.c      2007-02-04 19:59:17.000000000 +0100
2518 +++ samba-3.0.24/source/lib/pidfile.c   2007-07-17 13:19:05.000000000 +0200
2519 @@ -82,19 +82,22 @@
2520  {
2521         int     fd;
2522         char    buf[20];
2523 -       char    *short_configfile;
2524         pstring name;
2525         pstring pidFile;
2526         pid_t pid;
2527  
2528 +#if 0 /* AVM */
2529         /* Add a suffix to the program name if this is a process with a
2530          * none default configuration file name. */
2531         if (strcmp( CONFIGFILE, dyn_CONFIGFILE) == 0) {
2532                 strncpy( name, program_name, sizeof( name)-1);
2533         } else {
2534 -               short_configfile = strrchr( dyn_CONFIGFILE, '/');
2535 +               char    *short_configfile = strrchr( dyn_CONFIGFILE, '/');
2536                 slprintf( name, sizeof( name)-1, "%s-%s", program_name, short_configfile+1);
2537         }
2538 +#else
2539 +       strncpy( name, program_name, sizeof( name)-1);
2540 +#endif
2541  
2542         slprintf(pidFile, sizeof(pidFile)-1, "%s/%s.pid", lp_piddir(), name);
2543  
2544 diff -urN samba-3.0.24.orig/source/lib/smbrun.c samba-3.0.24/source/lib/smbrun.c
2545 --- samba-3.0.24.orig/source/lib/smbrun.c       2006-04-20 04:29:23.000000000 +0200
2546 +++ samba-3.0.24/source/lib/smbrun.c    2007-08-07 09:38:18.000000000 +0200
2547 @@ -55,7 +55,7 @@
2548  outfd (or discard it if outfd is NULL).
2549  ****************************************************************************/
2550  
2551 -int smbrun(const char *cmd, int *outfd)
2552 +static int smbrun_internal(const char *cmd, int *outfd, BOOL sanitize)
2553  {
2554         pid_t pid;
2555         uid_t uid = current_user.ut.uid;
2556 @@ -173,13 +173,36 @@
2557         }
2558  #endif
2559  
2560 -       execl("/bin/sh","sh","-c",cmd,NULL);  
2561 +       {
2562 +               const char *newcmd = sanitize ? escape_shell_string(cmd) : cmd;
2563 +               if (!newcmd) {
2564 +                       exit(82);
2565 +               }
2566 +               execl("/bin/sh","sh","-c",newcmd,NULL);  
2567 +       }
2568         
2569         /* not reached */
2570 -       exit(82);
2571 +       exit(83);
2572         return 1;
2573  }
2574  
2575 +/****************************************************************************
2576 + Use only in known safe shell calls (printing).
2577 +****************************************************************************/
2578 +
2579 +int smbrun_no_sanitize(const char *cmd, int *outfd)
2580 +{
2581 +       return smbrun_internal(cmd, outfd, False);
2582 +}
2583 +
2584 +/****************************************************************************
2585 + By default this now sanitizes shell expansion.
2586 +****************************************************************************/
2587 +
2588 +int smbrun(const char *cmd, int *outfd)
2589 +{
2590 +       return smbrun_internal(cmd, outfd, True);
2591 +}
2592  
2593  /****************************************************************************
2594  run a command being careful about uid/gid handling and putting the output in
2595 @@ -302,7 +325,7 @@
2596  #endif
2597  
2598         execl("/bin/sh", "sh", "-c", cmd, NULL);  
2599 -       
2600 +
2601         /* not reached */
2602         exit(82);
2603         return 1;
2604 diff -urN samba-3.0.24.orig/source/lib/util.c samba-3.0.24/source/lib/util.c
2605 --- samba-3.0.24.orig/source/lib/util.c 2007-02-04 19:59:17.000000000 +0100
2606 +++ samba-3.0.24/source/lib/util.c      2007-08-07 09:38:18.000000000 +0200
2607 @@ -300,7 +300,11 @@
2608         char *p;
2609         if ((p = getenv("TMPDIR")))
2610                 return p;
2611 +#if 1 /* AR7 */
2612 +       return "/var/tmp";
2613 +#else
2614         return "/tmp";
2615 +#endif
2616  }
2617  
2618  /****************************************************************************
2619 @@ -2182,6 +2186,9 @@
2620         case RA_WIN2K3:
2621                 fstrcpy(remote_arch, "Win2K3");
2622                 break;
2623 +       case RA_VISTA:
2624 +               fstrcpy(remote_arch, "Vista");
2625 +               break;
2626         case RA_SAMBA:
2627                 fstrcpy(remote_arch,"Samba");
2628                 break;
2629 diff -urN samba-3.0.24.orig/source/lib/util_sec.c samba-3.0.24/source/lib/util_sec.c
2630 --- samba-3.0.24.orig/source/lib/util_sec.c     2007-02-04 19:59:17.000000000 +0100
2631 +++ samba-3.0.24/source/lib/util_sec.c  2007-08-07 09:38:18.000000000 +0200
2632 @@ -286,28 +286,6 @@
2633  }
2634  
2635  /****************************************************************************
2636 - Lightweight become root - no group change.
2637 -****************************************************************************/
2638 -
2639 -void become_root_uid_only(void)
2640 -{
2641 -       save_re_uid();
2642 -       set_effective_uid(0);
2643 -}
2644 -
2645 -/****************************************************************************
2646 - Lightweight unbecome root - no group change. Expects we are root already,
2647 - saves errno across call boundary.
2648 -****************************************************************************/
2649 -
2650 -void unbecome_root_uid_only(void)
2651 -{
2652 -       int saved_errno = errno;
2653 -       restore_re_uid_fromroot();
2654 -       errno = saved_errno;
2655 -}
2656 -
2657 -/****************************************************************************
2658   save the real and effective gid for later restoration. Used by the 
2659   getgroups code
2660  ****************************************************************************/
2661 diff -urN samba-3.0.24.orig/source/lib/util_str.c samba-3.0.24/source/lib/util_str.c
2662 --- samba-3.0.24.orig/source/lib/util_str.c     2007-02-04 19:59:17.000000000 +0100
2663 +++ samba-3.0.24/source/lib/util_str.c  2007-08-07 09:38:18.000000000 +0200
2664 @@ -680,14 +680,14 @@
2665  
2666         for(i = 0; i < len; i++) {
2667                 int val = (src[i] & 0xff);
2668 -               if (isupper_ascii(val) || islower_ascii(val) || isdigit(val) || strchr_m(other_safe_chars, val))
2669 +               if (isupper_ascii(val) || islower_ascii(val) || isdigit(val) || strchr_m(other_safe_chars, val)) {
2670                         dest[i] = src[i];
2671 -               else
2672 +               } else {
2673                         dest[i] = '_';
2674 +               }
2675         }
2676  
2677         dest[i] = '\0';
2678 -
2679         return dest;
2680  }
2681  
2682 @@ -2426,3 +2426,165 @@
2683         return True;
2684  }
2685  
2686 +
2687 +/*******************************************************************
2688 + Add a shell escape character '\' to any character not in a known list
2689 + of characters. UNIX charset format.
2690 +*******************************************************************/
2691 +
2692 +#define INCLUDE_LIST "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_/ \t.,"
2693 +#define INSIDE_DQUOTE_LIST "$`\n\"\\"
2694 +
2695 +char *escape_shell_string(const char *src)
2696 +{
2697 +       size_t srclen = strlen(src);
2698 +       char *ret = SMB_MALLOC((srclen * 2) + 1);
2699 +       char *dest = ret;
2700 +       BOOL in_s_quote = False;
2701 +       BOOL in_d_quote = False;
2702 +       BOOL next_escaped = False;
2703 +
2704 +       if (!ret) {
2705 +               return NULL;
2706 +       }
2707 +
2708 +       while (*src) {
2709 +               size_t c_size = next_mb_char_size(src);
2710 +
2711 +               if (c_size == (size_t)-1) {
2712 +                       SAFE_FREE(ret);
2713 +                       return NULL;
2714 +               }
2715 +
2716 +               if (c_size > 1) {
2717 +                       memcpy(dest, src, c_size);
2718 +                       src += c_size;
2719 +                       dest += c_size;
2720 +                       next_escaped = False;
2721 +                       continue;
2722 +               }
2723 +
2724 +               /*
2725 +                * Deal with backslash escaped state.
2726 +                * This only lasts for one character.
2727 +                */
2728 +
2729 +               if (next_escaped) {
2730 +                       *dest++ = *src++;
2731 +                       next_escaped = False;
2732 +                       continue;
2733 +               }
2734 +
2735 +               /*
2736 +                * Deal with single quote state. The
2737 +                * only thing we care about is exiting
2738 +                * this state.
2739 +                */
2740 +
2741 +               if (in_s_quote) {
2742 +                       if (*src == '\'') {
2743 +                               in_s_quote = False;
2744 +                       }
2745 +                       *dest++ = *src++;
2746 +                       continue;
2747 +               }
2748 +
2749 +               /* 
2750 +                * Deal with double quote state. The most
2751 +                * complex state. We must cope with \, meaning
2752 +                * possibly escape next char (depending what it
2753 +                * is), ", meaning exit this state, and possibly
2754 +                * add an \ escape to any unprotected character
2755 +                * (listed in INSIDE_DQUOTE_LIST).
2756 +                */
2757 +
2758 +               if (in_d_quote) {
2759 +                       if (*src == '\\') {
2760 +                               /* 
2761 +                                * Next character might be escaped.
2762 +                                * We have to peek. Inside double
2763 +                                * quotes only INSIDE_DQUOTE_LIST
2764 +                                * characters are escaped by a \.
2765 +                                */
2766 +
2767 +                               char nextchar;
2768 +
2769 +                               c_size = next_mb_char_size(&src[1]);
2770 +                               if (c_size == (size_t)-1) {
2771 +                                       SAFE_FREE(ret);
2772 +                                       return NULL;
2773 +                               }
2774 +                               if (c_size > 1) {
2775 +                                       /*
2776 +                                        * Don't escape the next char.
2777 +                                        * Just copy the \.
2778 +                                        */
2779 +                                       *dest++ = *src++;
2780 +                                       continue;
2781 +                               }
2782 +
2783 +                               nextchar = src[1];
2784 +
2785 +                               if (nextchar && strchr(INSIDE_DQUOTE_LIST, (int)nextchar)) {
2786 +                                       next_escaped = True;
2787 +                               }
2788 +                               *dest++ = *src++;
2789 +                               continue;
2790 +                       }
2791 +
2792 +                       if (*src == '\"') {
2793 +                               /* Exit double quote state. */
2794 +                               in_d_quote = False;
2795 +                               *dest++ = *src++;
2796 +                               continue;
2797 +                       }
2798 +
2799 +                       /*
2800 +                        * We know the character isn't \ or ",
2801 +                        * so escape it if it's any of the other
2802 +                        * possible unprotected characters.
2803 +                        */
2804 +
2805 +                       if (strchr(INSIDE_DQUOTE_LIST, (int)*src)) {
2806 +                               *dest++ = '\\';
2807 +                       }
2808 +                       *dest++ = *src++;
2809 +                       continue;
2810 +               }
2811 +
2812 +               /* 
2813 +                * From here to the end of the loop we're
2814 +                * not in the single or double quote state.
2815 +                */
2816 +
2817 +               if (*src == '\\') {
2818 +                       /* Next character must be escaped. */
2819 +                       next_escaped = True;
2820 +                       *dest++ = *src++;
2821 +                       continue;
2822 +               }
2823 +
2824 +               if (*src == '\'') {
2825 +                       /* Go into single quote state. */
2826 +                       in_s_quote = True;
2827 +                       *dest++ = *src++;
2828 +                       continue;
2829 +               }
2830 +
2831 +               if (*src == '\"') {
2832 +                       /* Go into double quote state. */
2833 +                       in_d_quote = True;
2834 +                       *dest++ = *src++;
2835 +                       continue;
2836 +               }
2837 +
2838 +               /* Check if we need to escape the character. */
2839 +
2840 +               if (!strchr(INCLUDE_LIST, (int)*src)) {
2841 +                       *dest++ = '\\';
2842 +               }
2843 +               *dest++ = *src++;
2844 +       }
2845 +       *dest++ = '\0';
2846 +       return ret;
2847 +}
2848 diff -urN samba-3.0.24.orig/source/libads/authdata.c samba-3.0.24/source/libads/authdata.c
2849 --- samba-3.0.24.orig/source/libads/authdata.c  2006-02-23 17:29:34.000000000 +0100
2850 +++ samba-3.0.24/source/libads/authdata.c       2007-08-07 09:38:18.000000000 +0200
2851 @@ -120,10 +120,14 @@
2852                 return False;
2853  
2854         if (UNMARSHALLING(ps)) {
2855 -               array->krb_sid_and_attrs = PRS_ALLOC_MEM(ps, KRB_SID_AND_ATTRS, num);
2856 -               if (!array->krb_sid_and_attrs) {
2857 -                       DEBUG(3, ("No memory available\n"));
2858 -                       return False;
2859 +               if (num) {
2860 +                       array->krb_sid_and_attrs = PRS_ALLOC_MEM(ps, KRB_SID_AND_ATTRS, num);
2861 +                       if (!array->krb_sid_and_attrs) {
2862 +                               DEBUG(3, ("No memory available\n"));
2863 +                               return False;
2864 +                       }
2865 +               } else {
2866 +                       array->krb_sid_and_attrs = NULL;
2867                 }
2868         }
2869  
2870 @@ -184,10 +188,14 @@
2871                 return False;
2872  
2873         if (UNMARSHALLING(ps)) {
2874 -               array->group_membership = PRS_ALLOC_MEM(ps, GROUP_MEMBERSHIP, num);
2875 -               if (!array->group_membership) {
2876 -                       DEBUG(3, ("No memory available\n"));
2877 -                       return False;
2878 +               if (num) {
2879 +                       array->group_membership = PRS_ALLOC_MEM(ps, GROUP_MEMBERSHIP, num);
2880 +                       if (!array->group_membership) {
2881 +                               DEBUG(3, ("No memory available\n"));
2882 +                               return False;
2883 +                       }
2884 +               } else {
2885 +                       array->group_membership = NULL;
2886                 }
2887         }
2888  
2889 @@ -456,10 +464,14 @@
2890                 return False;
2891  
2892         if (UNMARSHALLING(ps) && length) {
2893 -               data->signature.buffer = PRS_ALLOC_MEM(ps, uint8, siglen);
2894 -               if (!data->signature.buffer) {
2895 -                       DEBUG(3, ("No memory available\n"));
2896 -                       return False;
2897 +               if (siglen) {
2898 +                       data->signature.buffer = PRS_ALLOC_MEM(ps, uint8, siglen);
2899 +                       if (!data->signature.buffer) {
2900 +                               DEBUG(3, ("No memory available\n"));
2901 +                               return False;
2902 +                       }
2903 +               } else {
2904 +                       data->signature.buffer = NULL;
2905                 }
2906         }
2907  
2908 --- samba-3.0.24/source/libsmb/clifile.c.orig   2009-12-21 07:53:20.000000000 +0100
2909 +++ samba-3.0.24/source/libsmb/clifile.c        2009-12-21 07:51:10.000000000 +0100
2910 @@ -21,6 +21,8 @@
2911  
2912  #include "includes.h"
2913  
2914 +#ifndef AVM_SMALLER
2915 +
2916  /****************************************************************************
2917   Hard/Symlink a file (UNIX extensions).
2918   Creates new name (sym)linked to oldname.
2919 @@ -71,6 +73,8 @@
2920         return True;
2921  }
2922  
2923 +#endif /* AVM_SMALLER */
2924 +
2925  /****************************************************************************
2926   Map standard UNIX permissions onto wire representations.
2927  ****************************************************************************/
2928 @@ -165,6 +169,8 @@
2929         }
2930  }
2931  
2932 +#ifndef AVM_SMALLER
2933 +
2934  /****************************************************************************
2935   Do a POSIX getfacl (UNIX extensions).
2936  ****************************************************************************/
2937 @@ -785,6 +791,8 @@
2938         return SVAL(cli->inbuf,smb_vwv2);
2939  }
2940  
2941 +#endif /* AVM_SMALLER */
2942 +
2943  /****************************************************************************
2944   Close a file.
2945  ****************************************************************************/
2946 @@ -813,6 +821,8 @@
2947  
2948  
2949  
2950 +#ifndef AVM_SMALLER
2951 +
2952  /****************************************************************************
2953   send a lock with a specified locktype 
2954   this is used for testing LOCKING_ANDX_CANCEL_LOCK
2955 @@ -1760,3 +1770,6 @@
2956  
2957         return cli_get_ea_list(cli, setup, param, 6, ctx, pnum_eas, pea_list);
2958  }
2959 +
2960 +#endif /* AVM_SMALLER */
2961 +
2962  
2963 diff -urN samba-3.0.24.orig/source/libsmb/namequery.c samba-3.0.24/source/libsmb/namequery.c
2964 --- samba-3.0.24.orig/source/libsmb/namequery.c 2007-02-04 19:59:20.000000000 +0100
2965 +++ samba-3.0.24/source/libsmb/namequery.c      2007-07-17 13:19:05.000000000 +0200
2966 @@ -1024,6 +1024,7 @@
2967  static BOOL resolve_ads(const char *name, int name_type,
2968                           struct ip_service **return_iplist, int *return_count)
2969  {
2970 +#ifdef HAVE_ADS
2971         int                     i, j;
2972         NTSTATUS                status;
2973         TALLOC_CTX              *ctx;
2974 @@ -1100,6 +1101,9 @@
2975                 
2976         talloc_destroy(ctx);
2977         return True;
2978 +#else  /* HAVE_ADS */
2979 +       return False;
2980 +#endif
2981  }
2982  
2983  /*******************************************************************
2984 diff -urN samba-3.0.24.orig/source/libsmb/namequery_dc.c samba-3.0.24/source/libsmb/namequery_dc.c
2985 --- samba-3.0.24.orig/source/libsmb/namequery_dc.c      2006-04-20 04:29:25.000000000 +0200
2986 +++ samba-3.0.24/source/libsmb/namequery_dc.c   2007-07-17 13:19:05.000000000 +0200
2987 @@ -31,6 +31,9 @@
2988   
2989  static BOOL ads_dc_name(const char *domain, const char *realm, struct in_addr *dc_ip, fstring srv_name)
2990  {
2991 +#if 1 /* AR7 */
2992 +       return False;
2993 +#else 
2994         ADS_STRUCT *ads;
2995  
2996         if (!realm && strequal(domain, lp_workgroup()))
2997 @@ -63,6 +66,7 @@
2998                  srv_name, inet_ntoa(*dc_ip)));
2999         
3000         return True;
3001 +#endif /* AR7 */
3002  }
3003  
3004  /****************************************************************************
3005 diff -urN samba-3.0.24.orig/source/locking/locking.c samba-3.0.24/source/locking/locking.c
3006 --- samba-3.0.24.orig/source/locking/locking.c  2007-02-04 19:59:23.000000000 +0100
3007 +++ samba-3.0.24/source/locking/locking.c       2007-08-07 09:38:18.000000000 +0200
3008 @@ -1166,6 +1166,11 @@
3009                 return NT_STATUS_ACCESS_DENIED;
3010         }
3011  
3012 +       /* Don't allow delete on close for non-empty directories. */
3013 +       if (fsp->is_directory) {
3014 +               return can_delete_directory(fsp->conn, fsp->fsp_name);
3015 +       }
3016 +
3017         return NT_STATUS_OK;
3018  }
3019  
3020 diff -urN samba-3.0.24.orig/source/Makefile samba-3.0.24/source/Makefile
3021 --- samba-3.0.24.orig/source/Makefile   1970-01-01 01:00:00.000000000 +0100
3022 +++ samba-3.0.24/source/Makefile        2008-02-28 11:21:14.000000000 +0100
3023 @@ -0,0 +1,1719 @@
3024 +#########################################################################
3025 +# Makefile.in for Samba - rewritten for autoconf support
3026 +# Copyright Andrew Tridgell 1992-1998
3027 +# Copyright (C) 2001 by Martin Pool <mbp@samba.org>
3028 +# Copyright Andrew Bartlett 2002
3029 +# Copyright (C) 2003 Jim McDonough <jmcd@us.ibm.com>
3030 +# Copyright (C) 2002-2003 Jelmer Vernooij <jelmer@samba.org>
3031 +###########################################################################
3032 +
3033 +SOURCEROOT=$(shell pwd)/../../../..
3034 +SHAREDLIBS=$(SOURCEROOT)/sharedlibs
3035 +
3036 +include ${SHAREDLIBS}/ar7def.mk
3037 +
3038 +# AR7
3039 +# prefix=/usr/local/samba
3040 +prefix=/var/samba
3041 +exec_prefix=${prefix}
3042 +
3043 +# AR7
3044 +# LIBS= -lcrypt -lresolv -lnsl -ldl
3045 +LIBS= -lcrypt -ldl -lpthread
3046 +# AR7
3047 +# CC=gcc
3048 +CC=${TARGET}-gcc
3049 +RANLIB = ${TARGET}-ranlib
3050 +AR = ${TARGET}-ar
3051 +
3052 +SHLD=${CC} ${CFLAGS}
3053 +# AR7
3054 +# CFLAGS= -O -D_SAMBA_BUILD_
3055 +CFLAGS= -Os -D_SAMBA_BUILD_ -DAVM_NO_PRINTING
3056 +CFLAGS+= -DAVM_NO_POPT
3057 +CFLAGS+= -DAVM_SMALLER
3058 +
3059 +# uncomment this to get debugs
3060 +# CFLAGS += -DSAMBA_DEBUG
3061 +
3062 +# AR7
3063 +# CPPFLAGS= -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
3064 +CPPFLAGS= -D_GNU_SOURCE
3065 +EXEEXT=
3066 +LDFLAGS=
3067 +AR=ar
3068 +LDSHFLAGS=-shared -Wl,-Bsymbolic 
3069 +WINBIND_NSS_LDSHFLAGS=-shared -Wl,-Bsymbolic 
3070 +AWK=gawk
3071 +DYNEXP=-Wl,--export-dynamic
3072 +PYTHON=
3073 +PERL=/usr/bin/perl
3074 +
3075 +ifeq ($(WITH_LFS),yes)
3076 +CFLAGS+= -DWITH_LFS
3077 +CPPFLAGS+= -DWITH_LFS
3078 +endif
3079 +
3080 +TERMLDFLAGS=
3081 +# AR7 
3082 +# TERMLIBS=-lreadline -lncurses
3083 +TERMLIBS=
3084 +PRINT_LIBS=
3085 +AUTH_LIBS=-lcrypt 
3086 +ACL_LIBS=
3087 +PASSDB_LIBS=
3088 +IDMAP_LIBS=
3089 +KRB5LIBS=
3090 +LDAP_LIBS=
3091 +
3092 +INSTALLCMD=/usr/bin/install -c
3093 +INSTALLCLIENTCMD_SH=$(INSTALLCMD)
3094 +INSTALLCLIENTCMD_A=:
3095 +
3096 +
3097 +srcdir=`pwd`
3098 +builddir=`pwd`
3099 +SHELL=/bin/sh
3100 +DESTDIR=/
3101 +
3102 +# XXX: Perhaps this should be /bin/sh instead -- apparently autoconf
3103 +# will search for a POSIX-compliant shell, and that might not be
3104 +# /bin/sh on some platforms.  I guess it's not a big problem -- mbp
3105 +
3106 +# See the autoconf manual "Installation Directory Variables" for a
3107 +# discussion of the subtle use of these variables.
3108 +
3109 +# AR7
3110 +# BASEDIR= /usr/local/samba
3111 +BASEDIR= /var/samba
3112 +BINDIR = ${exec_prefix}/bin
3113 +# sbindir is mapped to bindir when compiling SAMBA in 2.0.x compatibility mode.
3114 +SBINDIR = ${exec_prefix}/sbin
3115 +LIBDIR = ${prefix}/lib
3116 +VFSLIBDIR = $(LIBDIR)/vfs
3117 +PDBLIBDIR = $(LIBDIR)/pdb
3118 +RPCLIBDIR = $(LIBDIR)/rpc
3119 +IDMAPLIBDIR = $(LIBDIR)/idmap
3120 +CHARSETLIBDIR = $(LIBDIR)/charset
3121 +AUTHLIBDIR = $(LIBDIR)/auth
3122 +CONFIGDIR = ${LIBDIR}
3123 +VARDIR = ${prefix}/var
3124 +MANDIR = ${prefix}/man
3125 +DATADIR = ${prefix}/share
3126 +
3127 +# The permissions to give the executables
3128 +INSTALLPERMS = 0755
3129 +
3130 +# set these to where to find various files
3131 +# These can be overridden by command line switches (see smbd(8))
3132 +# or in smb.conf (see smb.conf(5))
3133 +LOGFILEBASE = ${VARDIR}
3134 +CONFIGFILE = $(CONFIGDIR)/smb.conf
3135 +LMHOSTSFILE = $(CONFIGDIR)/lmhosts
3136 +
3137 +# This is where smbpasswd et al go
3138 +PRIVATEDIR = ${prefix}/private
3139 +
3140 +SMB_PASSWD_FILE = $(PRIVATEDIR)/smbpasswd
3141 +PRIVATE_DIR = $(PRIVATEDIR)
3142 +
3143 +# This is where SWAT images and help files go
3144 +SWATDIR = ${prefix}/swat
3145 +
3146 +# the directory where lock files go
3147 +LOCKDIR = ${VARDIR}/locks
3148 +
3149 +# the directory where pid files go
3150 +PIDDIR = ${VARDIR}/locks
3151 +
3152 +LIBSMBCLIENT=bin/libsmbclient.a bin/libsmbclient.so
3153 +LIBSMBCLIENT_MAJOR=0
3154 +LIBSMBCLIENT_MINOR=1
3155 +
3156 +LIBSMBSHAREMODES=bin/libsmbsharemodes.a bin/libsmbsharemodes.so
3157 +LIBSMBSHAREMODES_MAJOR=0
3158 +LIBSMBSHAREMODES_MINOR=1
3159 +
3160 +
3161 +FLAGS1 = $(CFLAGS) -I./popt -Iinclude -I$(srcdir)/include -I$(srcdir)/ubiqx  -I. $(CPPFLAGS) -I$(srcdir) -I$(srcdir)/tdb
3162 +FLAGS2 = 
3163 +FLAGS3 = 
3164 +FLAGS4 = 
3165 +FLAGS5 = $(FLAGS1) $(FLAGS2) $(FLAGS3) $(FLAGS4)
3166 +FLAGS  = $(ISA) $(FLAGS5) 
3167 +
3168 +PASSWD_FLAGS = -DSMB_PASSWD_FILE=\"$(SMB_PASSWD_FILE)\" -DPRIVATE_DIR=\"$(PRIVATE_DIR)\"
3169 +PATH_FLAGS1 = -DCONFIGFILE=\"$(CONFIGFILE)\"  -DSBINDIR=\"$(SBINDIR)\"
3170 +PATH_FLAGS2 = $(PATH_FLAGS1) -DBINDIR=\"$(BINDIR)\" -DDRIVERFILE=\"$(DRIVERFILE)\" 
3171 +PATH_FLAGS3 = $(PATH_FLAGS2) -DLMHOSTSFILE=\"$(LMHOSTSFILE)\" 
3172 +PATH_FLAGS4 = $(PATH_FLAGS3) -DSWATDIR=\"$(SWATDIR)\"  -DLOCKDIR=\"$(LOCKDIR)\" -DPIDDIR=\"$(PIDDIR)\"
3173 +PATH_FLAGS5 = $(PATH_FLAGS4) -DLIBDIR=\"$(LIBDIR)\" \
3174 +             -DLOGFILEBASE=\"$(LOGFILEBASE)\" -DSHLIBEXT=\"so\"
3175 +PATH_FLAGS6 = $(PATH_FLAGS5) -DCONFIGDIR=\"$(CONFIGDIR)\"
3176 +PATH_FLAGS = $(PATH_FLAGS6) $(PASSWD_FLAGS)
3177 +
3178 +# Note that all executable programs now provide for an optional executable suffix.
3179 +
3180 +SBIN_PROGS = bin/smbd bin/nmbd bin/swat  bin/winbindd$(EXEEXT)
3181 +
3182 +BIN_PROGS1 = bin/smbclient bin/net bin/smbspool \
3183 +       bin/testparm bin/smbstatus 
3184 +BIN_PROGS2 = bin/smbcontrol bin/smbtree bin/tdbbackup \
3185 +       bin/nmblookup bin/pdbedit bin/tdbdump \
3186 +       bin/tdbtool
3187 +BIN_PROGS3 = bin/smbpasswd bin/rpcclient bin/smbcacls \
3188 +       bin/profiles bin/ntlm_auth \
3189 +       bin/smbcquotas
3190 +
3191 +TORTURE_PROGS = bin/smbtorture bin/msgtest \
3192 +       bin/masktest bin/locktest \
3193 +       bin/locktest2 bin/nsstest bin/vfstest
3194 +
3195 +BIN_PROGS = $(BIN_PROGS1) $(BIN_PROGS2) $(BIN_PROGS3)  bin/wbinfo$(EXEEXT)
3196 +
3197 +EVERYTHING_PROGS = bin/debug2html bin/smbfilter bin/talloctort \
3198 +       bin/log2pcap
3199 +
3200 +SHLIBS =  nsswitch/libnss_winbind.so nsswitch/libnss_wins.so libsmbclient libsmbsharemodes
3201 +
3202 +SCRIPTS = $(srcdir)/script/smbtar $(builddir)/script/findsmb
3203 +
3204 +VFS_MODULES =  bin/recycle.so bin/audit.so bin/extd_audit.so bin/full_audit.so bin/netatalk.so bin/fake_perms.so bin/default_quota.so bin/readonly.so bin/cap.so bin/expand_msdfs.so bin/shadow_copy.so
3205 +PDB_MODULES = 
3206 +RPC_MODULES = 
3207 +IDMAP_MODULES = 
3208 +CHARSET_MODULES =  bin/CP850.so bin/CP437.so
3209 +AUTH_MODULES = 
3210 +MODULES = $(VFS_MODULES) $(PDB_MODULES) $(RPC_MODULES) $(IDMAP_MODULES) $(CHARSET_MODULES) $(AUTH_MODULES)
3211 +
3212 +######################################################################
3213 +# object file lists
3214 +######################################################################
3215 +
3216 +TDBBASE_OBJ = tdb/tdb.o tdb/spinlock.o
3217 +
3218 +TDB_OBJ = $(TDBBASE_OBJ) tdb/tdbutil.o tdb/tdbback.o
3219 +
3220 +SMBLDAP_OBJ =  
3221 +
3222 +VERSION_OBJ = lib/version.o
3223 +
3224 +DOSERR_OBJ = libsmb/doserr.o
3225 +
3226 +SNPRINTF_OBJ = lib/snprintf.o
3227 +
3228 +WBCOMMON_OBJ = nsswitch/wb_common.o
3229 +
3230 +AFS_OBJ = lib/afs.o
3231 +
3232 +AFS_SETTOKEN_OBJ = lib/afs_settoken.o
3233 +
3234 +SERVER_MUTEX_OBJ = lib/server_mutex.o
3235 +
3236 +ERRORMAP_OBJ = libsmb/errormap.o
3237 +
3238 +PASSCHANGE_OBJ = libsmb/passchange.o
3239 +
3240 +SOCKET_WRAPPER_OBJ = lib/socket_wrapper.o
3241 +
3242 +RPC_PARSE_OBJ0 = rpc_parse/parse_prs.o rpc_parse/parse_misc.o
3243 +
3244 +LIB_OBJ = $(VERSION_OBJ) lib/charcnv.o lib/debug.o lib/fault.o \
3245 +          lib/getsmbpass.o lib/interface.o lib/md4.o \
3246 +          lib/interfaces.o lib/pidfile.o lib/replace.o lib/replace1.o \
3247 +          lib/signal.o lib/system.o lib/sendfile.o lib/time.o \
3248 +         lib/ufc.o lib/genrand.o lib/username.o \
3249 +         lib/util_pw.o lib/access.o lib/smbrun.o \
3250 +         lib/bitmap.o lib/crc32.o $(SNPRINTF_OBJ) lib/dprintf.o \
3251 +         lib/xfile.o lib/wins_srv.o \
3252 +         lib/util_str.o lib/clobber.o lib/util_sid.o lib/util_uuid.o \
3253 +         lib/util_unistr.o lib/util_file.o lib/data_blob.o \
3254 +         lib/util.o lib/util_sock.o lib/sock_exec.o lib/util_sec.o \
3255 +         lib/talloc.o lib/substitute.o lib/fsusage.o \
3256 +         lib/ms_fnmatch.o lib/select.o lib/messages.o \
3257 +         lib/tallocmsg.o lib/dmallocmsg.o libsmb/smb_signing.o \
3258 +         lib/md5.o lib/hmacmd5.o lib/iconv.o \
3259 +         nsswitch/wb_client.o $(WBCOMMON_OBJ) \
3260 +         lib/pam_errors.o intl/lang_tdb.o lib/account_pol.o \
3261 +         lib/adt_tree.o lib/gencache.o $(TDB_OBJ) \
3262 +         lib/module.o lib/ldap_escape.o  \
3263 +         lib/privileges.o lib/secdesc.o lib/secace.o lib/secacl.o \
3264 +       lib/arc4.o lib/sharesec.o lib/events.o lib/util_nscd.o
3265 +
3266 +LIB_NONSMBD_OBJ = $(LIB_OBJ) lib/dummysmbd.o lib/dummyroot.o
3267 +
3268 +READLINE_OBJ = lib/readline.o
3269 +
3270 +# Also depends on  $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
3271 +# Be sure to include them into your application
3272 +
3273 +POPT_LIB_OBJ = lib/popt_common.o 
3274 +
3275 +UBIQX_OBJ = ubiqx/ubi_BinTree.o ubiqx/ubi_Cache.o ubiqx/ubi_SplayTree.o \
3276 +            ubiqx/ubi_dLinkList.o ubiqx/ubi_sLinkList.o 
3277 +
3278 +PARAM_OBJ = dynconfig.o param/loadparm.o param/params.o
3279 +
3280 +KRBCLIENT_OBJ = libads/kerberos.o libads/ads_status.o 
3281 +
3282 +LIBADS_OBJ = libads/ldap.o libads/ldap_printer.o libads/sasl.o \
3283 +            libads/krb5_setpw.o libads/ldap_user.o \
3284 +            libads/ads_struct.o libads/kerberos_keytab.o \
3285 +             libads/disp_sec.o libads/ads_utils.o libads/ldap_utils.o \
3286 +            libads/authdata.o
3287 +
3288 +LIBADS_SERVER_OBJ = libads/util.o libads/kerberos_verify.o
3289 +
3290 +SECRETS_OBJ = passdb/secrets.o passdb/machine_sid.o 
3291 +
3292 +LIBNMB_OBJ = libsmb/unexpected.o libsmb/namecache.o libsmb/nmblib.o \
3293 +            libsmb/namequery.o libsmb/conncache.o 
3294 +
3295 +LIBSAMBA_OBJ = libsmb/nterr.o libsmb/smbdes.o libsmb/smbencrypt.o libsmb/ntlm_check.o \
3296 +       libsmb/ntlmssp.o libsmb/ntlmssp_parse.o libsmb/ntlmssp_sign.o
3297 +
3298 +LIBSMB_OBJ = \
3299 +               libsmb/clientgen.o \
3300 +               libsmb/cliconnect.o \
3301 +               libsmb/clirap.o \
3302 +               libsmb/clistr.o \
3303 +               libsmb/clitrans.o \
3304 +               libsmb/clifile.o \
3305 +            lib/util_seaccess.o \
3306 +               libsmb/clikrb5.o \
3307 +               libsmb/clispnego.o \
3308 +               libsmb/asn1.o \
3309 +               libsmb/clierror.o \
3310 +             libsmb/smberr.o libsmb/credentials.o libsmb/pwd_cache.o \
3311 +            libsmb/clioplock.o $(ERRORMAP_OBJ) \
3312 +            $(DOSERR_OBJ) \
3313 +            $(RPC_PARSE_OBJ1) $(LIBSAMBA_OBJ) $(LIBNMB_OBJ) 
3314 +
3315 +# LIBSMB_OBJ = \
3316 +#              libsmb/clientgen.o \
3317 +#               libsmb/cliconnect.o \
3318 +#              libsmb/clifile.o \
3319 +#           libsmb/clikrb5.o libsmb/clispnego.o libsmb/asn1.o \
3320 +#           libsmb/clirap.o libsmb/clierror.o libsmb/climessage.o \
3321 +#           libsmb/clireadwrite.o libsmb/clilist.o libsmb/cliprint.o \
3322 +#           libsmb/clitrans.o libsmb/clisecdesc.o libsmb/clidgram.o \
3323 +#           libsmb/clistr.o lib/util_seaccess.o \
3324 +#           libsmb/cliquota.o libsmb/clifsinfo.o libsmb/clidfs.o \
3325 +#             libsmb/smberr.o libsmb/credentials.o libsmb/pwd_cache.o \
3326 +#           libsmb/clioplock.o $(ERRORMAP_OBJ) libsmb/clirap2.o \
3327 +#           $(DOSERR_OBJ) \
3328 +#           $(RPC_PARSE_OBJ1) $(LIBSAMBA_OBJ) $(LIBNMB_OBJ) 
3329 +
3330 +
3331 +LIBMSRPC_OBJ = rpc_client/cli_lsarpc.o rpc_client/cli_samr.o \
3332 +              rpc_client/cli_netlogon.o rpc_client/cli_srvsvc.o \
3333 +              rpc_client/cli_wkssvc.o rpc_client/cli_dfs.o \
3334 +              rpc_client/cli_reg.o $(RPC_CLIENT_OBJ) \
3335 +              rpc_client/cli_spoolss.o rpc_client/cli_spoolss_notify.o  \
3336 +              rpc_client/cli_ds.o rpc_client/cli_echo.o \
3337 +              rpc_client/cli_shutdown.o rpc_client/cli_svcctl.o
3338 +
3339 +REGOBJS_OBJ = registry/reg_objects.o
3340 +
3341 +REGISTRY_OBJ = registry/reg_frontend.o registry/reg_cachehook.o \
3342 +               registry/reg_db.o registry/reg_eventlog.o registry/reg_shares.o \
3343 +               registry/reg_util.o registry/reg_dynamic.o
3344 +
3345 +RPC_LSA_OBJ = \
3346 +
3347 +# rpc_server/srv_lsa.o rpc_server/srv_lsa_nt.o
3348 +
3349 +RPC_NETLOG_OBJ = \
3350 +
3351 +# rpc_server/srv_netlog.o rpc_server/srv_netlog_nt.o
3352 +
3353 +RPC_SAMR_OBJ = \
3354 +               rpc_server/srv_samr_util.o
3355 +
3356 +# rpc_server/srv_samr.o
3357 +#  rpc_server/srv_samr_nt.o
3358 +
3359 +REGFIO_OBJ = registry/regfio.o
3360 +
3361 +RPC_REG_OBJ =  \
3362 +
3363 +# rpc_server/srv_reg.o rpc_server/srv_reg_nt.o $(REGFIO_OBJ)
3364 +
3365 +RPC_LSA_DS_OBJ = \
3366 +
3367 +#   rpc_server/srv_lsa_ds.o rpc_server/srv_lsa_ds_nt.o
3368 +
3369 +RPC_SVC_OBJ = \
3370 +       rpc_server/srv_srvsvc.o \
3371 +       rpc_server/srv_srvsvc_nt.o
3372 +
3373 +
3374 +
3375 +RPC_WKS_OBJ = \
3376 +       rpc_server/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o
3377 +
3378 +RPC_SVCCTL_OBJ = \
3379 +
3380 +# rpc_server/srv_svcctl.o rpc_server/srv_svcctl_nt.o \
3381 +#                  services/svc_spoolss.o services/svc_rcinit.o services/services_db.o
3382 +
3383 +RPC_DFS_OBJ =  \
3384 +
3385 +# rpc_server/srv_dfs.o rpc_server/srv_dfs_nt.o
3386 +
3387 +RPC_SPOOLSS_OBJ = \
3388 +
3389 +# rpc_server/srv_spoolss.o rpc_server/srv_spoolss_nt.o 
3390 +
3391 +RPC_EVENTLOG_OBJ = \
3392 +
3393 +# rpc_server/srv_eventlog.o rpc_server/srv_eventlog_nt.o
3394 +
3395 +RPC_PIPE_OBJ = \
3396 +               rpc_server/srv_pipe_hnd.o \
3397 +             rpc_server/srv_pipe.o \
3398 +               rpc_server/srv_lsa_hnd.o
3399 +
3400 +#               rpc_server/srv_util.o
3401 +
3402 +
3403 +RPC_ECHO_OBJ = rpc_server/srv_echo.o rpc_server/srv_echo_nt.o
3404 +
3405 +RPC_SERVER_OBJ =  $(RPC_LSA_OBJ) $(RPC_REG_OBJ) $(RPC_LSA_DS_OBJ) $(RPC_WKS_OBJ) $(RPC_SVCCTL_OBJ) $(RPC_NETLOG_OBJ) $(RPC_DFS_OBJ) $(RPC_SVC_OBJ) $(RPC_EVENTLOG_OBJ) $(RPC_SAMR_OBJ) $(RPC_PIPE_OBJ)
3406 +
3407 +# this includes only the low level parse code, not stuff
3408 +# that requires knowledge of security contexts
3409 +RPC_PARSE_OBJ1 = $(RPC_PARSE_OBJ0) rpc_parse/parse_sec.o
3410 +
3411 +RPC_PARSE_OBJ = \
3412 +               rpc_parse/parse_rpc.o \
3413 +       rpc_parse/parse_lsa.o \
3414 +       rpc_parse/parse_net.o \
3415 +                rpc_parse/parse_wks.o rpc_parse/parse_ds.o \
3416 +               rpc_parse/parse_spoolss.o \
3417 +               rpc_parse/parse_dfs.o \
3418 +               rpc_parse/parse_echo.o rpc_parse/parse_shutdown.o \
3419 +       rpc_parse/parse_buffer.o $(REGOBJS_OBJ) \
3420 +       rpc_parse/parse_srv.o
3421 +
3422 +# rpc_parse/parse_eventlog.o \
3423 +# rpc_parse/parse_svcctl.o \
3424 +# rpc_parse/parse_reg.o 
3425 +# rpc_parse/parse_samr.o 
3426 +
3427 +
3428 +RPC_CLIENT_OBJ = rpc_client/cli_pipe.o
3429 +
3430 +LOCKING_OBJ = locking/locking.o locking/brlock.o locking/posix.o
3431 +
3432 +PASSDB_GET_SET_OBJ = passdb/pdb_get_set.o
3433 +
3434 +PASSDB_OBJ = $(PASSDB_GET_SET_OBJ) passdb/passdb.o passdb/pdb_interface.o \
3435 +               passdb/pdb_compat.o \
3436 +               passdb/lookup_sid.o \
3437 +               passdb/login_cache.o  passdb/pdb_smbpasswd.o passdb/pdb_tdb.o \
3438 +               lib/system_smbd.o \
3439 +               passdb/lookup_sid.o passdb/util_builtin.o \
3440 +               passdb/util_wellknown.o passdb/util_unixsids.o
3441 +
3442 +XML_OBJ = passdb/pdb_xml.o
3443 +MYSQL_OBJ = passdb/pdb_mysql.o
3444 +PGSQL_OBJ = passdb/pdb_pgsql.o
3445 +DEVEL_HELP_WEIRD_OBJ = modules/weird.o
3446 +CP850_OBJ = modules/CP850.o
3447 +CP437_OBJ = modules/CP437.o
3448 +CHARSET_MACOSXFS_OBJ = modules/charset_macosxfs.o
3449 +
3450 +GROUPDB_OBJ = groupdb/mapping.o
3451 +
3452 +PROFILE_OBJ = profile/profile.o
3453 +PROFILES_OBJ = utils/profiles.o
3454 +
3455 +OPLOCK_OBJ = smbd/oplock.o smbd/oplock_irix.o smbd/oplock_linux.o
3456 +
3457 +NOTIFY_OBJ = smbd/notify.o smbd/notify_hash.o smbd/notify_kernel.o
3458 +
3459 +VFS_AUDIT_OBJ = modules/vfs_audit.o
3460 +VFS_EXTD_AUDIT_OBJ = modules/vfs_extd_audit.o
3461 +VFS_FULL_AUDIT_OBJ = modules/vfs_full_audit.o
3462 +VFS_FAKE_PERMS_OBJ = modules/vfs_fake_perms.o
3463 +VFS_RECYCLE_OBJ = modules/vfs_recycle.o
3464 +VFS_NETATALK_OBJ = modules/vfs_netatalk.o
3465 +VFS_DEFAULT_QUOTA_OBJ = modules/vfs_default_quota.o
3466 +VFS_READONLY_OBJ = modules/vfs_readonly.o modules/getdate.o
3467 +VFS_CAP_OBJ = modules/vfs_cap.o
3468 +VFS_EXPAND_MSDFS_OBJ = modules/vfs_expand_msdfs.o
3469 +VFS_SHADOW_COPY_OBJ = modules/vfs_shadow_copy.o
3470 +VFS_AFSACL_OBJ = modules/vfs_afsacl.o
3471 +VFS_CATIA_OBJ = modules/vfs_catia.o
3472 +
3473 +PLAINTEXT_AUTH_OBJ = auth/pampass.o auth/pass_check.o
3474 +
3475 +SLCACHE_OBJ = libsmb/samlogon_cache.o
3476 +
3477 +DCUTIL_OBJ  = libsmb/namequery_dc.o 
3478 +
3479 +# libsmb/trustdom_cache.o
3480 +# libsmb/trusts_util.o
3481 +
3482 +AUTH_BUILTIN_OBJ = auth/auth_builtin.o
3483 +AUTH_DOMAIN_OBJ = auth/auth_domain.o
3484 +AUTH_SAM_OBJ = auth/auth_sam.o
3485 +AUTH_RHOSTS_OBJ = auth/auth_rhosts.o
3486 +AUTH_SERVER_OBJ = auth/auth_server.o
3487 +AUTH_UNIX_OBJ = auth/auth_unix.o
3488 +AUTH_WINBIND_OBJ = auth/auth_winbind.o
3489 +
3490 +AUTH_OBJ = auth/auth.o  $(AUTH_SAM_OBJ) $(AUTH_BUILTIN_OBJ) auth/auth_util.o auth/auth_compat.o \
3491 +          auth/auth_ntlmssp.o \
3492 +          $(PLAINTEXT_AUTH_OBJ) $(SLCACHE_OBJ) $(DCUTIL_OBJ)
3493 +
3494 +# AUTH_OBJ = auth/auth.o  $(AUTH_RHOSTS_OBJ) $(AUTH_SAM_OBJ) $(AUTH_UNIX_OBJ) $(AUTH_WINBIND_OBJ) $(AUTH_SERVER_OBJ) $(AUTH_DOMAIN_OBJ) $(AUTH_BUILTIN_OBJ) auth/auth_util.o auth/auth_compat.o \
3495 +#         auth/auth_ntlmssp.o \
3496 +#         $(PLAINTEXT_AUTH_OBJ) $(SLCACHE_OBJ) $(DCUTIL_OBJ)
3497 +
3498 +MANGLE_OBJ = smbd/mangle.o smbd/mangle_hash.o smbd/mangle_map.o smbd/mangle_hash2.o
3499 +
3500 +SMBD_OBJ_MAIN = smbd/server.o
3501 +
3502 +BUILDOPT_OBJ = smbd/build_options.o
3503 +
3504 +SMBD_OBJ_SRV = smbd/files.o smbd/chgpasswd.o smbd/connection.o \
3505 +              smbd/utmp.o smbd/session.o \
3506 +               smbd/dfree.o smbd/dir.o smbd/password.o smbd/conn.o smbd/fileio.o \
3507 +               smbd/message.o smbd/nttrans.o \
3508 +               smbd/reply.o smbd/sesssetup.o smbd/trans2.o smbd/uid.o \
3509 +              smbd/dosmode.o smbd/filename.o smbd/open.o smbd/close.o \
3510 +              smbd/blocking.o smbd/sec_ctx.o smbd/srvstr.o \
3511 +              smbd/vfs.o smbd/vfs-wrap.o smbd/statcache.o \
3512 +               smbd/posix_acls.o lib/sysacls.o $(SERVER_MUTEX_OBJ) \
3513 +              smbd/process.o smbd/service.o smbd/error.o \
3514 +               smbd/fake_file.o \
3515 +              smbd/msdfs.o \
3516 +               smbd/aio.o \
3517 +              $(MANGLE_OBJ) \
3518 +               smbd/negprot.o \
3519 + smbd/ipc.o \
3520 + smbd/lanman.o \
3521 + smbd/change_trust_pw.o \
3522 + smbd/pipes.o \
3523 + smbd/share_access.o \
3524 + smbd/statvfs.o \
3525 + smbd/map_username.o
3526 +
3527 +
3528 +SMBD_OBJ_BASE = $(PARAM_OBJ) $(SMBD_OBJ_SRV) $(LIBSMB_OBJ) \
3529 +               $(RPC_SERVER_OBJ) $(RPC_PARSE_OBJ) $(SECRETS_OBJ) \
3530 +               $(LOCKING_OBJ) $(PASSDB_OBJ) $(PROFILE_OBJ) \
3531 +               $(LIB_OBJ) $(OPLOCK_OBJ) \
3532 +               $(NOTIFY_OBJ) $(GROUPDB_OBJ) $(AUTH_OBJ) \
3533 +               libads/ads_status.o
3534 +
3535 +#              $(REGISTRY_OBJ)
3536 +#              $(LIBMSRPC_OBJ)
3537 +
3538 +PRINTING_OBJ = printing/pcap.o printing/print_svid.o printing/print_aix.o \
3539 +               printing/print_cups.o printing/print_generic.o \
3540 +               printing/lpq_parse.o printing/load.o
3541 +
3542 +PRINTBASE_OBJ = printing/notify.o printing/printing_db.o
3543 +
3544 +PRINTBACKEND_OBJ = printing/printing.o printing/nt_printing.o $(PRINTBASE_OBJ)
3545 +
3546 +# SMBD_OBJ = $(SMBD_OBJ_BASE) $(SMBD_OBJ_MAIN)
3547 +
3548 +
3549 +NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \
3550 +            nmbd/nmbd_become_lmb.o nmbd/nmbd_browserdb.o \
3551 +            nmbd/nmbd_browsesync.o nmbd/nmbd_elections.o \
3552 +            nmbd/nmbd_incomingdgrams.o nmbd/nmbd_incomingrequests.o \
3553 +            nmbd/nmbd_lmhosts.o nmbd/nmbd_logonnames.o nmbd/nmbd_mynames.o \
3554 +            nmbd/nmbd_namelistdb.o nmbd/nmbd_namequery.o \
3555 +            nmbd/nmbd_nameregister.o nmbd/nmbd_namerelease.o \
3556 +            nmbd/nmbd_nodestatus.o nmbd/nmbd_packets.o \
3557 +            nmbd/nmbd_processlogon.o nmbd/nmbd_responserecordsdb.o \
3558 +            nmbd/nmbd_sendannounce.o nmbd/nmbd_serverlistdb.o \
3559 +            nmbd/nmbd_subnetdb.o nmbd/nmbd_winsproxy.o nmbd/nmbd_winsserver.o \
3560 +            nmbd/nmbd_workgroupdb.o nmbd/nmbd_synclists.o
3561 +
3562 +NMBD_OBJ = $(NMBD_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) \
3563 +           $(KRBCLIENT_OBJ) $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) \
3564 +           $(SECRETS_OBJ) $(POPT_LIB_OBJ)
3565 +
3566 +WREPL_OBJ1 =
3567 +
3568 +WREPL_OBJ = $(WREPL_OBJ1)  $(PARAM_OBJ) $(UBIQX_OBJ) \
3569 +           $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) \
3570 +           $(LIBSAMBA_OBJ)
3571 +
3572 +SWAT_OBJ1 = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \
3573 +           web/swat.o web/neg_lang.o 
3574 +
3575 +SWAT_OBJ = $(SWAT_OBJ1) $(PARAM_OBJ) $(PRINTING_OBJ) $(LIBSMB_OBJ) \
3576 +          $(LOCKING_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ) $(KRBCLIENT_OBJ) \
3577 +          $(LIB_NONSMBD_OBJ) $(GROUPDB_OBJ) $(PLAINTEXT_AUTH_OBJ) \
3578 +          $(POPT_LIB_OBJ) $(SMBLDAP_OBJ) $(RPC_PARSE_OBJ) $(LIBMSRPC_OBJ) \
3579 +           $(PASSCHANGE_OBJ)
3580 +
3581 +SMBSH_OBJ = smbwrapper/smbsh.o smbwrapper/shared.o \
3582 +            $(PARAM_OBJ) $(LIB_NONSMBD_OBJ)
3583 +
3584 +STATUS_OBJ = utils/status.o $(LOCKING_OBJ) $(PARAM_OBJ) \
3585 +             $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) \
3586 +            $(SECRETS_OBJ) $(LIBSAMBA_OBJ) $(ERRORMAP_OBJ) 
3587 +             
3588 +
3589 +SMBCONTROL_OBJ = utils/smbcontrol.o $(LOCKING_OBJ) $(PARAM_OBJ) \
3590 +       $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) \
3591 +       $(SECRETS_OBJ) $(LIBSAMBA_OBJ) \
3592 +       $(PRINTBASE_OBJ) $(ERRORMAP_OBJ)
3593 +
3594 +SMBTREE_OBJ = utils/smbtree.o $(PARAM_OBJ) \
3595 +             $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(LIBSMB_OBJ) \
3596 +            $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) 
3597 +
3598 +TESTPARM_OBJ = utils/testparm.o \
3599 +               $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) \
3600 +              $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
3601 +
3602 +SMBPASSWD_OBJ = utils/smbpasswd.o $(PASSCHANGE_OBJ) $(PARAM_OBJ) $(SECRETS_OBJ) \
3603 +               $(LIBSMB_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ)\
3604 +                $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
3605 +               $(SMBLDAP_OBJ) $(RPC_PARSE_OBJ) $(LIBMSRPC_OBJ)
3606 +
3607 +PDBEDIT_OBJ = utils/pdbedit.o $(PARAM_OBJ) $(PASSDB_OBJ) $(LIBSAMBA_OBJ) \
3608 +               $(LIB_NONSMBD_OBJ) $(GROUPDB_OBJ) $(SECRETS_OBJ) \
3609 +               $(POPT_LIB_OBJ) $(SMBLDAP_OBJ) libsmb/asn1.o
3610 +
3611 +SMBGET_OBJ = utils/smbget.o $(POPT_LIB_OBJ) $(LIBSMBCLIENT_OBJ)
3612 +
3613 +RPCCLIENT_OBJ1 = rpcclient/rpcclient.o rpcclient/cmd_lsarpc.o \
3614 +                rpcclient/cmd_samr.o rpcclient/cmd_spoolss.o \
3615 +                rpcclient/cmd_netlogon.o rpcclient/cmd_srvsvc.o \
3616 +                rpcclient/cmd_dfs.o rpcclient/cmd_reg.o \
3617 +                rpcclient/cmd_ds.o \
3618 +                rpcclient/cmd_echo.o rpcclient/cmd_shutdown.o
3619 +
3620 +RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \
3621 +             $(PARAM_OBJ) $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) \
3622 +             $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(LIBMSRPC_OBJ) \
3623 +             $(READLINE_OBJ) $(GROUPDB_OBJ) $(KRBCLIENT_OBJ) \
3624 +            $(LIBADS_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ) \
3625 +            $(SMBLDAP_OBJ) $(DCUTIL_OBJ)
3626 +
3627 +PAM_WINBIND_PICOBJ = nsswitch/pam_winbind.po \
3628 +       nsswitch/wb_common.po lib/replace1.po \
3629 +       lib/snprintf.po
3630 +
3631 +SMBW_OBJ1 = smbwrapper/smbw.o \
3632 +               smbwrapper/smbw_dir.o smbwrapper/smbw_stat.o \
3633 +               smbwrapper/realcalls.o smbwrapper/shared.o \
3634 +               smbwrapper/smbw_cache.o
3635 +
3636 +SMBW_OBJ = $(SMBW_OBJ1) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(PARAM_OBJ) \
3637 +                $(LIB_NONSMBD_OBJ)
3638 +
3639 +SMBWRAPPER_OBJ1 = smbwrapper/wrapped.o
3640 +
3641 +SMBWRAPPER_OBJ = $(SMBW_OBJ) $(SMBWRAPPER_OBJ1)
3642 +
3643 +LIBSMBCLIENT_OBJ = libsmb/libsmbclient.o libsmb/libsmb_compat.o \
3644 +                  libsmb/libsmb_cache.o \
3645 +                  $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
3646 +                  $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
3647 +                  $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) \
3648 +                  $(SECRETS_OBJ) $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ)
3649 +
3650 +LIBSMBSHAREMODES_OBJ = libsmb/smb_share_modes.o tdb/tdb.o tdb/spinlock.o
3651 +# This shared library is intended for linking with unit test programs
3652 +# to test Samba internals.  It's called libbigballofmud.so to
3653 +# discourage casual usage.
3654 +
3655 +LIBBIGBALLOFMUD_MAJOR = 0
3656 +
3657 +LIBBIGBALLOFMUD_OBJ = $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(UBIQX_OBJ) $(SECRETS_OBJ) \
3658 +       $(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
3659 +       $(GROUPDB_OBJ) $(KRBCLIENT_OBJ) $(SMBLDAP_OBJ)
3660 +
3661 +LIBBIGBALLOFMUD_PICOBJS = $(LIBBIGBALLOFMUD_OBJ:.o=.po)
3662 +
3663 +CLIENT_OBJ1 = client/client.o client/clitar.o 
3664 +
3665 +CLIENT_OBJ = $(CLIENT_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) \
3666 +            $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
3667 +             $(READLINE_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ)
3668 +
3669 +NET_OBJ1 = utils/net.o utils/net_ads.o utils/net_help.o \
3670 +          utils/net_rap.o utils/net_rpc.o utils/net_rpc_samsync.o \
3671 +          utils/net_rpc_join.o utils/net_time.o utils/net_lookup.o \
3672 +          utils/net_cache.o utils/net_groupmap.o utils/net_idmap.o \
3673 +          utils/net_status.o utils/net_rpc_printer.o utils/net_rpc_rights.o \
3674 +          utils/net_rpc_service.o utils/net_rpc_registry.o 
3675 +
3676 +NET_OBJ = $(NET_OBJ1) $(PARAM_OBJ) $(SECRETS_OBJ) $(LIBSMB_OBJ) \
3677 +         $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
3678 +         $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) \
3679 +         $(LIBMSRPC_OBJ) $(IDMAP_OBJ) \
3680 +         $(LIBADS_OBJ) $(LIBADS_SERVER_OBJ) $(POPT_LIB_OBJ) \
3681 +         $(SMBLDAP_OBJ) $(DCUTIL_OBJ) $(SERVER_MUTEX_OBJ) \
3682 +         $(AFS_OBJ) $(AFS_SETTOKEN_OBJ) $(PRINTERDB_OBJ) $(REGFIO_OBJ)
3683 +
3684 +CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
3685 +         $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) $(SECRETS_OBJ)
3686 +
3687 +MOUNT_OBJ = client/smbmount.o \
3688 +             $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
3689 +
3690 +MNT_OBJ = client/smbmnt.o $(VERSION_OBJ) $(SNPRINTF_OBJ)
3691 +
3692 +UMOUNT_OBJ = client/smbumount.o
3693 +
3694 +NMBLOOKUP_OBJ = utils/nmblookup.o $(PARAM_OBJ) $(LIBNMB_OBJ) \
3695 +               $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
3696 +
3697 +SMBTORTURE_OBJ1 = torture/torture.o torture/nbio.o torture/scanner.o torture/utable.o \
3698 +               torture/denytest.o torture/mangle_test.o 
3699 +
3700 +SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) $(PARAM_OBJ) \
3701 +       $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
3702 +
3703 +MASKTEST_OBJ = torture/masktest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
3704 +                 $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
3705 +
3706 +MSGTEST_OBJ = torture/msgtest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
3707 +                 $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
3708 +
3709 +LOCKTEST_OBJ = torture/locktest.o $(PARAM_OBJ) $(LOCKING_OBJ) $(KRBCLIENT_OBJ) \
3710 +               $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)  
3711 +
3712 +NSSTEST_OBJ = torture/nsstest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
3713 +                 $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
3714 +
3715 +VFSTEST_OBJ = torture/cmd_vfs.o torture/vfstest.o $(SMBD_OBJ_BASE) $(READLINE_OBJ)
3716 +
3717 +SMBICONV_OBJ = $(PARAM_OBJ) torture/smbiconv.o $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
3718 +
3719 +LOG2PCAP_OBJ = utils/log2pcaphex.o
3720 +
3721 +LOCKTEST2_OBJ = torture/locktest2.o $(PARAM_OBJ) $(LOCKING_OBJ) $(LIBSMB_OBJ) \
3722 +               $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
3723 +
3724 +SMBCACLS_OBJ = utils/smbcacls.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
3725 +                          $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(RPC_PARSE_OBJ) \
3726 +                          $(PASSDB_OBJ) $(GROUPDB_OBJ) $(LIBMSRPC_OBJ) $(SECRETS_OBJ) \
3727 +                          $(POPT_LIB_OBJ) $(DCUTIL_OBJ) $(LIBADS_OBJ) $(SMBLDAP_OBJ)
3728 +
3729 +SMBCQUOTAS_OBJ = utils/smbcquotas.o $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
3730 +               $(PARAM_OBJ) \
3731 +               $(LIB_NONSMBD_OBJ) $(RPC_PARSE_OBJ) \
3732 +               $(LIBMSRPC_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ) \
3733 +               $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ)
3734 +
3735 +TALLOCTORT_OBJ = lib/talloctort.o $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) libsmb/nterr.o
3736 +
3737 +RPCTORTURE_OBJ = torture/rpctorture.o \
3738 +             rpcclient/display.o \
3739 +             rpcclient/cmd_lsarpc.o \
3740 +             rpcclient/cmd_wkssvc.o \
3741 +             rpcclient/cmd_samr.o \
3742 +             rpcclient/cmd_srvsvc.o \
3743 +             rpcclient/cmd_netlogon.o \
3744 +             $(PARAM_OBJ) $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
3745 +             $(RPC_CLIENT_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_GET_SET_OBJ)
3746 +
3747 +DEBUG2HTML_OBJ = utils/debug2html.o ubiqx/debugparse.o
3748 +
3749 +SMBFILTER_OBJ = utils/smbfilter.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(SECRETS_OBJ) \
3750 +                 $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) 
3751 +
3752 +PROTO_OBJ = $(SMBD_OBJ_MAIN) \
3753 +           $(SMBD_OBJ_SRV) $(NMBD_OBJ1) $(SWAT_OBJ1) $(LIB_OBJ) $(LIBSMB_OBJ) \
3754 +           $(SMBTORTURE_OBJ1) $(RPCCLIENT_OBJ1) \
3755 +           $(LIBMSRPC_OBJ)  \
3756 +           $(RPC_PIPE_OBJ) $(RPC_PARSE_OBJ) $(KRBCLIENT_OBJ) \
3757 +           $(AUTH_OBJ) $(PARAM_OBJ) $(LOCKING_OBJ) $(SECRETS_OBJ) \
3758 +           $(PRINTING_OBJ) $(PRINTBACKEND_OBJ) $(OPLOCK_OBJ) $(NOTIFY_OBJ) \
3759 +           $(PASSDB_OBJ) $(GROUPDB_OBJ) \
3760 +           $(READLINE_OBJ) $(PROFILE_OBJ) $(LIBADS_OBJ) $(LIBADS_SERVER_OBJ) \
3761 +           $(AUTH_SAM_OBJ) $(REGISTRY_OBJ) $(POPT_LIB_OBJ) \
3762 +           $(RPC_LSA_OBJ) $(RPC_NETLOG_OBJ) $(RPC_SAMR_OBJ) $(RPC_REG_OBJ) $(RPC_LSA_DS_OBJ) \
3763 +           $(RPC_SVC_OBJ) $(RPC_WKS_OBJ) $(RPC_DFS_OBJ) $(RPC_SPOOLSS_OBJ) \
3764 +           $(RPC_ECHO_OBJ) $(RPC_SVCCTL_OBJ) $(RPC_EVENTLOG_OBJ) $(SMBLDAP_OBJ) \
3765 +            $(IDMAP_OBJ) libsmb/spnego.o $(PASSCHANGE_OBJ)
3766 +
3767 +WINBIND_WINS_NSS_OBJ = nsswitch/wins.o $(PARAM_OBJ) \
3768 +       $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) $(NSSWINS_OBJ) $(KRBCLIENT_OBJ)
3769 +
3770 +WINBIND_WINS_NSS_PICOBJS = $(WINBIND_WINS_NSS_OBJ:.o=.po)
3771 +
3772 +PICOBJS = $(SMBWRAPPER_OBJ:.o=.po)
3773 +LIBSMBCLIENT_PICOBJS = $(LIBSMBCLIENT_OBJ:.o=.po)
3774 +LIBSMBSHAREMODES_PICOBJS = $(LIBSMBSHAREMODES_OBJ:.o=.po)
3775 +
3776 +PAM_SMBPASS_OBJ_0 = pam_smbpass/pam_smb_auth.o pam_smbpass/pam_smb_passwd.o \
3777 +               pam_smbpass/pam_smb_acct.o pam_smbpass/support.o \
3778 +               $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
3779 +               $(SECRETS_OBJ) $(SMBLDAP_OBJ) $(LIBSAMBA_OBJ)
3780 +
3781 +PAM_SMBPASS_PICOOBJ = $(PAM_SMBPASS_OBJ_0:.o=.po)
3782 +
3783 +IDMAP_OBJ     = sam/idmap.o sam/idmap_util.o  sam/idmap_tdb.o
3784 +
3785 +WINBINDD_OBJ1 = \
3786 +               nsswitch/winbindd.o       \
3787 +               nsswitch/winbindd_user.o  \
3788 +               nsswitch/winbindd_group.o \
3789 +               nsswitch/winbindd_util.o  \
3790 +               nsswitch/winbindd_cache.o \
3791 +               nsswitch/winbindd_pam.o   \
3792 +               nsswitch/winbindd_sid.o   \
3793 +               nsswitch/winbindd_misc.o  \
3794 +               nsswitch/winbindd_cm.o \
3795 +               nsswitch/winbindd_wins.o \
3796 +               nsswitch/winbindd_rpc.o \
3797 +               nsswitch/winbindd_reconnect.o \
3798 +               nsswitch/winbindd_ads.o \
3799 +               nsswitch/winbindd_passdb.o \
3800 +               nsswitch/winbindd_dual.o \
3801 +               nsswitch/winbindd_async.o
3802 +
3803 +WINBINDD_OBJ = \
3804 +               $(WINBINDD_OBJ1) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
3805 +               $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
3806 +               $(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) \
3807 +               $(PROFILE_OBJ) $(SLCACHE_OBJ) $(SMBLDAP_OBJ) \
3808 +               $(SECRETS_OBJ) $(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) \
3809 +               $(DCUTIL_OBJ) $(IDMAP_OBJ) \
3810 +               $(AFS_OBJ) $(AFS_SETTOKEN_OBJ)
3811 +
3812 +WBINFO_OBJ = nsswitch/wbinfo.o $(LIBSAMBA_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
3813 +               $(SECRETS_OBJ) $(POPT_LIB_OBJ) $(AFS_SETTOKEN_OBJ)
3814 +
3815 +WINBIND_NSS_OBJ = $(WBCOMMON_OBJ) lib/replace1.o nsswitch/winbind_nss_linux.o
3816 +
3817 +WINBIND_NSS_PICOBJS = $(WINBIND_NSS_OBJ:.o=.po) lib/snprintf.po
3818 +
3819 +POPT_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \
3820 +          popt/popthelp.o popt/poptparse.o
3821 +
3822 +TDBBACKUP_OBJ = tdb/tdbbackup.o tdb/tdbback.o $(SNPRINTF_OBJ) $(TDBBASE_OBJ)
3823 +
3824 +TDBTOOL_OBJ = tdb/tdbtool.o $(TDBBASE_OBJ) $(SNPRINTF_OBJ)
3825 +
3826 +TDBDUMP_OBJ = tdb/tdbdump.o $(TDBBASE_OBJ) $(SNPRINTF_OBJ)
3827 +
3828 +NTLM_AUTH_OBJ1 = utils/ntlm_auth.o utils/ntlm_auth_diagnostics.o 
3829 +
3830 +NTLM_AUTH_OBJ = ${NTLM_AUTH_OBJ1} $(LIBSAMBA_OBJ) $(POPT_LIB_OBJ) \
3831 +               libsmb/asn1.o libsmb/spnego.o libsmb/clikrb5.o libads/kerberos.o \
3832 +               libads/kerberos_verify.o $(SECRETS_OBJ) $(SERVER_MUTEX_OBJ) \
3833 +               libads/authdata.o $(RPC_PARSE_OBJ0) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
3834 +               $(SMBLDAP_OBJ) $(DOSERR_OBJ)
3835 +
3836 +######################################################################
3837 +# now the rules...
3838 +######################################################################
3839 +all : SHOWFLAGS proto_exists bin/smbd  bin/smbpasswd  bin/nmbd
3840 +
3841 +pam_smbpass : SHOWFLAGS bin/pam_smbpass.so
3842 +
3843 +smbwrapper : SHOWFLAGS 
3844 +
3845 +torture : SHOWFLAGS $(TORTURE_PROGS)
3846 +
3847 +smbtorture : SHOWFLAGS bin/smbtorture
3848 +
3849 +masktest : SHOWFLAGS bin/masktest
3850 +
3851 +msgtest : SHOWFLAGS bin/msgtest
3852 +
3853 +locktest : SHOWFLAGS bin/locktest
3854 +
3855 +smbcacls : SHOWFLAGS bin/smbcacls
3856 +
3857 +smbcquotas : SHOWFLAGS bin/smbcquotas
3858 +
3859 +locktest2 : SHOWFLAGS bin/locktest2
3860 +
3861 +rpctorture : SHOWFLAGS bin/rpctorture
3862 +
3863 +debug2html : SHOWFLAGS bin/debug2html
3864 +
3865 +smbfilter : SHOWFLAGS bin/smbfilter
3866 +
3867 +talloctort : SHOWFLAGS bin/talloctort
3868 +
3869 +nsswitch : SHOWFLAGS bin/winbindd bin/wbinfo nsswitch/libnss_winbind.so \
3870 +       nsswitch/libnss_wins.so nsswitch/pam_winbind.so
3871 +
3872 +wins : SHOWFLAGS nsswitch/libnss_wins.so
3873 +
3874 +modules: SHOWFLAGS proto_exists $(MODULES)
3875 +
3876 +everything: all libsmbclient debug2html smbfilter talloctort modules torture \
3877 +       $(EVERYTHING_PROGS)
3878 +
3879 +.SUFFIXES:
3880 +.SUFFIXES: .c .o .po .lo
3881 +
3882 +SHOWFLAGS:
3883 +       @echo "Using FLAGS = $(FLAGS)"
3884 +       @echo "      LIBS = $(LIBS)"
3885 +       @echo "      LDSHFLAGS = $(LDSHFLAGS)"
3886 +       @echo "      LDFLAGS = $(LDFLAGS)"
3887 +       @echo "      CFLAGS= $(CFLAGS)"
3888 +       @echo "      WITH_LFS= $(WITH_LFS)"
3889 +
3890 +
3891 +MAKEDIR = || exec false; \
3892 +         if test -d "$$dir"; then :; else \
3893 +         echo mkdir "$$dir"; \
3894 +         mkdir -p "$$dir" >/dev/null 2>&1 || \
3895 +         test -d "$$dir" || \
3896 +         mkdir "$$dir" || \
3897 +         exec false; fi || exec false
3898 +
3899 +.c.o:
3900 +       @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
3901 +        dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
3902 +       @echo Compiling $*.c
3903 +       @$(CC) -I. -I$(srcdir) $(FLAGS)  -c $< \
3904 +         -o $@ 
3905 +#      -mv `echo $@ | sed 's%^.*/%%g'` $@
3906 +
3907 +# this adds support for precompiled headers. To use it, install a snapshot
3908 +# of gcc-3.4 and run 'make pch' before you do the main build. 
3909 +pch:
3910 +       rm -f $(srcdir)/include/includes.h.gch
3911 +       $(CC) -I. -I$(srcdir) $(FLAGS) -c $(srcdir)/include/includes.h -o $(srcdir)/include/includes.h.gch
3912 +
3913 +# These dependencies are only approximately correct: we want to make
3914 +# sure Samba's paths are updated if ./configure is re-run.  Really it
3915 +# would be nice if "make prefix=/opt/samba all" also rebuilt things,
3916 +# but since we also require "make install prefix=/opt/samba" *not* to
3917 +# rebuild it's a bit hard.
3918 +
3919 +dynconfig.o: dynconfig.c Makefile
3920 +       @echo Compiling $*.c
3921 +       @$(CC) $(FLAGS) $(PATH_FLAGS)  -c $(srcdir)/dynconfig.c -o $@ 
3922 +
3923 +dynconfig.po: dynconfig.c Makefile
3924 +       @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
3925 +         dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
3926 +       @echo Compiling $*.c with -fPIC
3927 +       @$(CC) -I. -I$(srcdir) $(FLAGS) $(PATH_FLAGS) -fPIC -c $(srcdir)/dynconfig.c -o $@
3928 +#      -mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\.po$$%.o%'` $@
3929 +
3930 +lib/version.o: lib/version.c include/version.h
3931 +       @echo Compiling $*.c
3932 +       @$(CC) -I. -I$(srcdir) $(FLAGS) $(PATH_FLAGS)  -c $(srcdir)/lib/version.c -o $@ 
3933 +
3934 +lib/version.po: lib/version.c include/version.h
3935 +       @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
3936 +         dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
3937 +       @echo Compiling $*.c with -fPIC
3938 +       @$(CC) -I. -I$(srcdir) $(FLAGS) $(PATH_FLAGS) -fPIC -c $(srcdir)/lib/version.c -o $@
3939 +#      -mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\.po$$%.o%'` $@
3940 +
3941 +smbd/build_options.o: smbd/build_options.c Makefile include/config.h include/build_env.h include/proto.h
3942 +       @echo Compiling $*.c
3943 +       @$(CC) $(FLAGS) $(PATH_FLAGS)  -c smbd/build_options.c -o $@
3944 +
3945 +smbd/build_options.c: include/config.h.in script/mkbuildoptions.awk
3946 +       @echo Generating $@
3947 +       @dir=smbd $(MAKEDIR) && $(AWK) -f $(srcdir)/script/mkbuildoptions.awk > $(builddir)/smbd/build_options.c < $(srcdir)/include/config.h.in
3948 +
3949 +.c.po: 
3950 +       @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
3951 +         dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
3952 +       @echo Compiling $*.c with -fPIC
3953 +       @$(CC) -I. -I$(srcdir) $(FLAGS) -fPIC -c $< -o $*.po
3954 +#      -mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\.po$$%.o%'` $@
3955 +
3956 +bin/.dummy:
3957 +       @if (: >> $@ || : > $@) >/dev/null 2>&1; then :; else \
3958 +         dir=bin $(MAKEDIR); fi
3959 +       @: >> $@ || : > $@ # what a fancy emoticon!
3960 +
3961 +bin/smbd: bin/libsmbd.a $(SMBD_OBJ_MAIN) $(POPT_OBJS) $(POPT_LIB_OBJ) bin/.dummy
3962 +       @echo Linking $@
3963 +       $(CC) $(FLAGS)  -o $@ $(SMBD_OBJ_MAIN) $(POPT_OBJS) $(POPT_LIB_OBJ) $(LDFLAGS) \
3964 +               $(AUTH_LIBS) \
3965 +               -Lbin -lsmbd \
3966 +               -L$(TARGETFS)/lib \
3967 +               $(LIBS)
3968 +
3969 +bin/libsmbd.a: $(SMBD_OBJ_BASE)
3970 +       $(AR) cru bin/libsmbd.a $(SMBD_OBJ_BASE)
3971 +       $(RANLIB) bin/libsmbd.a
3972 +
3973 +
3974 +bin/nmbd: $(NMBD_OBJ) $(POPT_OBJS) bin/.dummy
3975 +       @echo Linking $@
3976 +       @$(CC) $(FLAGS)  -o $@ $(NMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
3977 +
3978 +
3979 +bin/swat: $(SWAT_OBJ) $(POPT_OBJS) bin/.dummy
3980 +       @echo Linking $@
3981 +       @$(CC) $(FLAGS)  -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINT_LIBS) \
3982 +         $(AUTH_LIBS) $(LIBS) $(PASSDB_LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
3983 +
3984 +bin/rpcclient: $(RPCCLIENT_OBJ) $(POPT_OBJS) bin/.dummy
3985 +       @echo Linking $@
3986 +       @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(PASSDB_LIBS) $(RPCCLIENT_OBJ) \
3987 +               $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_OBJS) \
3988 +               $(KRB5LIBS) $(LDAP_LIBS)
3989 +
3990 +bin/smbclient: $(CLIENT_OBJ) $(POPT_OBJS) bin/.dummy
3991 +       @echo Linking $@
3992 +       @$(CC) $(FLAGS)  -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
3993 +
3994 +bin/net: $(NET_OBJ) $(POPT_OBJS) bin/.dummy
3995 +       @echo Linking $@
3996 +       @$(CC) $(FLAGS)  -o $@ $(NET_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS) $(PASSDB_LIBS)
3997 +
3998 +bin/profiles: $(PROFILES_OBJ) $(POPT_OBJS) bin/.dummy
3999 +       @echo Linking $@
4000 +       @$(CC) $(FLAGS)  -o $@ $(PROFILES_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(POPT_OBJS)
4001 +
4002 +bin/smbspool: $(CUPS_OBJ) bin/.dummy
4003 +       @echo Linking $@
4004 +       @$(CC) $(FLAGS)  -o $@ $(CUPS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
4005 +
4006 +bin/smbmount: $(MOUNT_OBJ) bin/.dummy
4007 +       @echo Linking $@
4008 +       @$(CC) $(FLAGS)  -o $@ $(MOUNT_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
4009 +
4010 +bin/smbmnt: $(MNT_OBJ) bin/.dummy
4011 +       @echo Linking $@
4012 +       @$(CC) $(FLAGS)  -o $@ $(MNT_OBJ) $(DYNEXP) $(LDFLAGS) 
4013 +
4014 +bin/smbumount: $(UMOUNT_OBJ) bin/.dummy
4015 +       @echo Linking $@
4016 +       @$(CC) $(FLAGS)  -o $@ $(UMOUNT_OBJ) $(DYNEXP) $(LDFLAGS)
4017 +
4018 +bin/testparm: $(TESTPARM_OBJ) $(POPT_OBJS) bin/.dummy
4019 +       @echo Linking $@
4020 +       @$(CC) $(FLAGS)  -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS)
4021 +
4022 +bin/smbstatus: $(STATUS_OBJ) $(POPT_OBJS) bin/.dummy
4023 +       @echo Linking $@
4024 +       @$(CC) $(FLAGS)  -o $@ $(STATUS_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
4025 +       $(POPT_OBJS)
4026 +
4027 +bin/smbcontrol: $(SMBCONTROL_OBJ) $(POPT_OBJS) bin/.dummy
4028 +       @echo Linking $@
4029 +       @$(CC) -DUSING_SMBCONTROL $(FLAGS)  -o $@ $(SMBCONTROL_OBJ) $(DYNEXP) \
4030 +       $(LDFLAGS) $(LIBS) \
4031 +       $(POPT_OBJS)
4032 +
4033 +bin/smbtree: $(SMBTREE_OBJ) $(POPT_OBJS) bin/.dummy
4034 +       @echo Linking $@
4035 +       @$(CC) $(FLAGS)  -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS) 
4036 +
4037 +# bin/smbpasswd: $(SMBPASSWD_OBJ) bin/.dummy
4038 +#      @echo Linking $@
4039 +#      @$(CC) $(FLAGS)  -o $@ $(SMBPASSWD_OBJ) $(LDFLAGS) $(PASSDB_LIBS) \
4040 +#              $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) 
4041 +
4042 +MY_PASS_OBJ = libsmb/smbdes.o lib/md4.o lib/arc4.o
4043 +
4044 +bin/smbpasswd: utils/avm_smbpasswd.o $(MY_PASS_OBJ)
4045 +       @echo Linking $@
4046 +       @$(CC) $(FLAGS)  -o $@ utils/avm_smbpasswd.o $(MY_PASS_OBJ) \
4047 +               -L$(TARGETFS)/lib
4048 +
4049
4050 +
4051 +bin/pdbedit: $(PDBEDIT_OBJ) $(POPT_OBJS) bin/.dummy
4052 +       @echo Linking $@
4053 +       @$(CC) $(FLAGS)  -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS) $(PASSDB_LIBS) $(LDAP_LIBS)
4054 +
4055 +bin/smbget: $(SMBGET_OBJ) $(POPT_OBJS) bin/.dummy
4056 +       @echo Linking $@
4057 +       @$(CC) $(FLAGS)  -o $@ $(SMBGET_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS)  $(KRB5LIBS) $(LDAP_LIBS)
4058 +
4059 +bin/samtest: $(SAMTEST_OBJ) $(POPT_OBJS) bin/.dummy
4060 +       @echo Linking $@
4061 +       @$(CC) $(FLAGS)  -o $@ $(SAMTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) $(POPT_OBJS) $(PASSDB_LIBS) $(KRB5LIBS) $(LDAP_LIBS)
4062 +
4063 +bin/nmblookup: $(NMBLOOKUP_OBJ) $(POPT_OBJS) bin/.dummy
4064 +       @echo Linking $@
4065 +       @$(CC) $(FLAGS)  -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS) $(LDAP_LIBS)
4066 +
4067 +bin/smbtorture: $(SMBTORTURE_OBJ) bin/.dummy
4068 +       @echo Linking $@
4069 +       @$(CC) $(FLAGS)  -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) 
4070 +
4071 +bin/talloctort: $(TALLOCTORT_OBJ) bin/.dummy
4072 +       @echo Linking $@
4073 +       @$(CC) $(FLAGS)  -o $@ $(TALLOCTORT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
4074 +
4075 +bin/masktest: $(MASKTEST_OBJ) bin/.dummy
4076 +       @echo Linking $@
4077 +       @$(CC) $(FLAGS)  -o $@ $(MASKTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
4078 +
4079 +bin/msgtest: $(MSGTEST_OBJ) bin/.dummy
4080 +       @echo Linking $@
4081 +       @$(CC) $(FLAGS)  -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) 
4082 +
4083 +bin/smbcacls: $(SMBCACLS_OBJ) $(POPT_OBJS) bin/.dummy
4084 +       @echo Linking $@
4085 +       @$(CC) $(FLAGS)  -o $@ $(SMBCACLS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
4086 +
4087 +bin/smbcquotas: $(SMBCQUOTAS_OBJ) $(POPT_OBJS) bin/.dummy
4088 +       @echo Linking $@
4089 +       @$(CC) $(FLAGS)  -o $@ $(SMBCQUOTAS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
4090 +
4091 +bin/locktest: $(LOCKTEST_OBJ) bin/.dummy
4092 +       @echo Linking $@
4093 +       @$(CC) $(FLAGS)  -o $@ $(LOCKTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
4094 +
4095 +bin/nsstest: $(NSSTEST_OBJ) bin/.dummy
4096 +       @echo Linking $@
4097 +       @$(CC) $(FLAGS)  -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS)  $(LDAP_LIBS)
4098 +
4099 +bin/vfstest: $(VFSTEST_OBJ) $(POPT_OBJS) bin/.dummy
4100 +       @echo Linking $@
4101 +       @$(CC) $(FLAGS)  -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) $(ACL_LIBS) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
4102 +
4103 +bin/smbiconv: $(SMBICONV_OBJ) $(POPT_OBJS) bin/.dummy
4104 +       @echo Linking $@
4105 +       @$(CC) $(FLAGS)  -o $@ $(SMBICONV_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) $(POPT_OBJS)
4106 +
4107 +bin/log2pcap: $(LOG2PCAP_OBJ) $(POPT_OBJS) bin/.dummy
4108 +       @echo Linking $@
4109 +       @$(CC) $(FLAGS)  -o $@ $(LOG2PCAP_OBJ) $(LDFLAGS) $(DYNEXP) $(POPT_OBJS) $(LIBS)
4110 +
4111 +bin/locktest2: $(LOCKTEST2_OBJ) bin/.dummy
4112 +       @echo Linking $@
4113 +       @$(CC) $(FLAGS)  -o $@ $(LOCKTEST2_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
4114 +
4115 +bin/rpctorture: $(RPCTORTURE_OBJ) bin/.dummy
4116 +       @echo Linking $@
4117 +       @$(CC) $(FLAGS)  -o $@ $(RPCTORTURE_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
4118 +
4119 +bin/debug2html: $(DEBUG2HTML_OBJ) bin/.dummy
4120 +       @echo Linking $@
4121 +       @$(CC) $(FLAGS)  -o $@ $(DEBUG2HTML_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
4122 +
4123 +bin/smbfilter: $(SMBFILTER_OBJ) bin/.dummy
4124 +       @echo Linking $@
4125 +       @$(CC) $(FLAGS)  -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
4126 +
4127 +bin/smbw_sample: $(SMBW_OBJ) utils/smbw_sample.o bin/.dummy
4128 +       @echo Linking $@
4129 +       @$(CC) $(FLAGS)  -o $@ $(SMBW_OBJ) utils/smbw_sample.o $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
4130 +
4131 +bin/smbsh: $(SMBSH_OBJ) bin/.dummy
4132 +       @echo Linking $@
4133 +       @$(CC) $(FLAGS)  -o $@ $(SMBSH_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
4134 +
4135 +bin/smbwrapper.so: $(PICOBJS) bin/.dummy
4136 +       @echo Linking shared library $@
4137 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(PICOBJS) $(LIBS) \
4138 +               $(KRB5LIBS) $(LDAP_LIBS) \
4139 +               -Wl,-soname=`basename $@`
4140 +
4141 +bin/libsmbclient.so: $(LIBSMBCLIENT_PICOBJS)
4142 +       @echo Linking libsmbclient shared library $@
4143 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(LIBSMBCLIENT_PICOBJS) $(LDFLAGS) $(LIBS) \
4144 +               $(KRB5LIBS) $(LDAP_LIBS) \
4145 +               -Wl,-soname=`basename $@`.$(LIBSMBCLIENT_MAJOR)
4146 +
4147 +bin/libsmbclient.a: $(LIBSMBCLIENT_PICOBJS)
4148 +       @echo Linking libsmbclient non-shared library $@
4149 +       @-$(AR) -rc $@ $(LIBSMBCLIENT_PICOBJS)
4150 +
4151 +bin/libsmbsharemodes.so: $(LIBSMBSHAREMODES_PICOBJS)
4152 +       @echo Linking libsmbsharemodes shared library $@
4153 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(LIBSMBSHAREMODES_PICOBJS) $(LDFLAGS) $(LIBS) \
4154 +               $(KRB5LIBS) $(LDAP_LIBS) \
4155 +               -Wl,-soname=`basename $@`.$(LIBSMBSHAREMODES_MAJOR)
4156 +
4157 +bin/libsmbsharemodes.a: $(LIBSMBSHAREMODES_PICOBJS)
4158 +       @echo Linking libsmbsharemodes non-shared library $@
4159 +       @-$(AR) -rc $@ $(LIBSMBSHAREMODES_PICOBJS)
4160 +
4161 +# This is probably wrong for anything other than the GNU linker. 
4162 +bin/libbigballofmud.so: $(LIBBIGBALLOFMUD_PICOBJS)
4163 +       @echo Linking bigballofmud shared library $@
4164 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(LIBBIGBALLOFMUD_PICOBJS) $(LIBS) \
4165 +               $(PASSDB_LIBS) $(IDMAP_LIBS) $(KRB5LIBS) $(LDAP_LIBS) \
4166 +               -Wl,-soname=`basename $@`.$(LIBBIGBALLOFMUD_MAJOR)
4167 +       ln -snf libbigballofmud.so bin/libbigballofmud.so.0
4168 +
4169 +# It would be nice to build a static bigballofmud too, but when I try
4170 +# I get linker errors about dl_open and similar things.  I'm not sure if
4171 +# it can be fixed or if they just can't be called from a static
4172 +# library.
4173 +
4174 +libsmbclient: $(LIBSMBCLIENT)
4175 +libsmbsharemodes: $(LIBSMBSHAREMODES)
4176 +
4177 +bin/librpc_lsarpc.so: $(RPC_LSA_OBJ)
4178 +       @echo "Linking $@"
4179 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_LSA_OBJ) -lc \
4180 +               -Wl,-soname=`basename $@`
4181 +
4182 +bin/librpc_samr.so: $(RPC_SAMR_OBJ)
4183 +       @echo "Linking $@"
4184 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_SAMR_OBJ) -lc \
4185 +               -Wl,-soname=`basename $@`
4186 +
4187 +bin/librpc_srvsvc.so: $(RPC_SVC_OBJ)
4188 +       @echo "Linking $@"
4189 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_SVC_OBJ) -lc \
4190 +               -Wl,-soname=`basename $@`
4191 +
4192 +bin/librpc_svcctl.so: $(RPC_SVCCTL_OBJ)
4193 +       @echo "Linking $@"
4194 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_SVCCTL_OBJ) -lc \
4195 +               -Wl,-soname=`basename $@`
4196 +
4197 +bin/librpc_wkssvc.so: $(RPC_WKS_OBJ)
4198 +       @echo "Linking $@"
4199 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_WKS_OBJ) -lc \
4200 +               -Wl,-soname=`basename $@`
4201 +
4202 +bin/librpc_NETLOGON.so: $(RPC_NETLOG_OBJ)
4203 +       @echo "Linking $@"
4204 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_NETLOG_OBJ) -lc \
4205 +               -Wl,-soname=`basename $@`
4206 +
4207 +bin/librpc_winreg.so: $(RPC_REG_OBJ)
4208 +       @echo "Linking $@"
4209 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_REG_OBJ) -lc \
4210 +               -Wl,-soname=`basename $@`
4211 +
4212 +bin/librpc_lsa_ds.so: $(RPC_LSA_DS_OBJ)
4213 +       @echo "Linking $@"
4214 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_LSA_DS_OBJ) -lc \
4215 +               -Wl,-soname=`basename $@`
4216 +
4217 +bin/librpc_spoolss.so: $(RPC_SPOOLSS_OBJ)
4218 +       @echo "Linking $@"
4219 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_SPOOLSS_OBJ) -lc \
4220 +               -Wl,-soname=`basename $@`
4221 +
4222 +bin/librpc_eventlog.so: $(RPC_EVENTLOG_OBJ)
4223 +       @echo "Linking $@"
4224 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_EVENTLOG_OBJ) -lc \
4225 +               -Wl,-soname=`basename $@`
4226 +
4227 +bin/librpc_netdfs.so: $(RPC_DFS_OBJ)
4228 +       @echo "Linking $@"
4229 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_DFS_OBJ) -lc \
4230 +               -Wl,-soname=`basename $@`
4231 +
4232 +bin/librpc_echo.so: $(RPC_ECHO_OBJ)
4233 +       @echo "Linking $@"
4234 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_ECHO_OBJ) -lc \
4235 +               -Wl,-soname=`basename $@`
4236 +
4237 +bin/winbindd: $(WINBINDD_OBJ) $(POPT_OBJS) bin/.dummy
4238 +       @echo "Linking $@"
4239 +       @$(CC) $(FLAGS)  -o $@ $(WINBINDD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
4240 +               $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS) $(PASSDB_LIBS)
4241 +
4242 +# Please don't add .o files to libnss_winbind, libnss_wins, or the pam_winbind
4243 +# libraries.  Add to the appropriate PICOBJ variable instead.
4244 +
4245 +nsswitch/libnss_winbind.so: $(WINBIND_NSS_PICOBJS)
4246 +       @echo "Linking $@"
4247 +       @$(SHLD) $(WINBIND_NSS_LDSHFLAGS) -o $@ $(WINBIND_NSS_PICOBJS) \
4248 +                -Wl,-soname=`basename $@`
4249 +
4250 +nsswitch/libnss_wins.so: $(WINBIND_WINS_NSS_PICOBJS)
4251 +       @echo "Linking $@"
4252 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(WINBIND_WINS_NSS_PICOBJS) \
4253 +               $(LDAP_LIBS) $(KRB5LIBS) -lc \
4254 +               -Wl,-soname=`basename $@`
4255 +
4256 +nsswitch/pam_winbind.so: $(PAM_WINBIND_PICOBJ) bin/.dummy
4257 +       @echo "Linking $@"
4258 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_WINBIND_PICOBJ) \
4259 +               -Wl,-soname=`basename $@` -lpam
4260 +
4261 +bin/rhosts.so: $(AUTH_RHOSTS_OBJ:.o=.po)
4262 +       @echo "Building plugin $@"
4263 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_RHOSTS_OBJ:.o=.po) -Wl,-soname=`basename $@`
4264 +
4265 +bin/builtin.so: $(AUTH_BUILTIN_OBJ:.o=.po)
4266 +       @echo "Building plugin $@"
4267 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_BUILTIN_OBJ:.o=.po) -Wl,-soname=`basename $@`
4268 +
4269 +bin/domain.so: $(AUTH_DOMAIN_OBJ:.o=.po)
4270 +       @echo "Building plugin $@"
4271 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_DOMAIN_OBJ:.o=.po) -Wl,-soname=`basename $@`
4272 +
4273 +bin/smbserver.so: $(AUTH_SERVER_OBJ:.o=.po)
4274 +       @echo "Building plugin $@"
4275 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SERVER_OBJ:.o=.po) -Wl,-soname=`basename $@`
4276 +
4277 +bin/winbind.so: $(AUTH_WINBIND_OBJ:.o=.po)
4278 +       @echo "Building plugin $@"
4279 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_WINBIND_OBJ:.o=.po) -Wl,-soname=`basename $@`
4280 +
4281 +bin/unix.so: $(AUTH_UNIX_OBJ:.o=.po)
4282 +       @echo "Building plugin $@"
4283 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_UNIX_OBJ:.o=.po) -Wl,-soname=`basename $@`
4284 +
4285 +bin/sam.so: $(AUTH_SAM_OBJ:.o=.po)
4286 +       @echo "Building plugin $@"
4287 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SAM_OBJ:.o=.po) -Wl,-soname=`basename $@`
4288 +
4289 +bin/mysql.so: $(MYSQL_OBJ:.o=.po)
4290 +       @echo "Building plugin $@"
4291 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(MYSQL_OBJ:.o=.po)  \
4292 +               -Wl,-soname=`basename $@`
4293 +
4294 +bin/pgsql.so: $(PGSQL_OBJ:.o=.po)
4295 +       @echo "Building plugin $@"
4296 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(PGSQL_OBJ:.o=.po)  \
4297 +      -Wl,-soname=`basename $@`
4298 +
4299 +bin/ldapsam.so: passdb/pdb_ldap.po
4300 +       @echo "Building plugin $@"
4301 +       @$(SHLD) $(LDSHFLAGS) $(LDAP_LIBS) -o $@ passdb/pdb_ldap.po \
4302 +               -Wl,-soname=`basename $@`
4303 +
4304 +bin/tdbsam.so: passdb/pdb_tdb.po
4305 +       @echo "Building plugin $@"
4306 +       @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_tdb.po \
4307 +               -Wl,-soname=`basename $@`
4308 +
4309 +bin/smbpasswd.so: passdb/pdb_smbpasswd.po
4310 +       @echo "Building plugin $@"
4311 +       @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_smbpasswd.po \
4312 +               -Wl,-soname=`basename $@`
4313 +
4314 +bin/idmap_rid.so: sam/idmap_rid.po
4315 +       @echo "Building plugin $@"
4316 +       @$(SHLD) $(LDSHFLAGS) -o $@ sam/idmap_rid.po \
4317 +               -Wl,-soname=`basename $@`
4318 +
4319 +bin/idmap_ad.so: sam/idmap_ad.po
4320 +       @echo "Building plugin $@"
4321 +       @$(SHLD) $(LDSHFLAGS) -o $@ sam/idmap_ad.po \
4322 +               -Wl,-soname=`basename $@`
4323 +
4324 +bin/weird.so: $(DEVEL_HELP_WEIRD_OBJ:.o=.po)
4325 +       @echo "Building plugin $@"
4326 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(DEVEL_HELP_WEIRD_OBJ:.o=.po) \
4327 +               -Wl,-soname=`basename $@`
4328 +
4329 +bin/CP850.so: $(CP850_OBJ:.o=.po)
4330 +       @echo "Building plugin $@"
4331 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(CP850_OBJ:.o=.po) \
4332 +               -Wl,-soname=`basename $@`
4333 +
4334 +bin/CP437.so: $(CP437_OBJ:.o=.po)
4335 +       @echo "Building plugin $@"
4336 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(CP437_OBJ:.o=.po) \
4337 +               -Wl,-soname=`basename $@`
4338 +
4339 +bin/macosxfs.so: $(CHARSET_MACOSXFS_OBJ:.o=.po)
4340 +       @echo "Building plugin $@"
4341 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(CHARSET_MACOSXFS_OBJ:.o=.po) \
4342 +               -framework CoreFoundation -Wl,-soname=`basename $@`
4343 +
4344 +bin/xml.so: $(XML_OBJ:.o=.po)
4345 +       @echo "Building plugin $@"
4346 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(XML_OBJ:.o=.po)  \
4347 +               -Wl,-soname=`basename $@`
4348 +
4349 +bin/audit.so: $(VFS_AUDIT_OBJ:.o=.po)
4350 +       @echo "Building plugin $@"
4351 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AUDIT_OBJ:.o=.po) \
4352 +               -Wl,-soname=`basename $@`
4353 +
4354 +bin/extd_audit.so: $(VFS_EXTD_AUDIT_OBJ:.o=.po)
4355 +       @echo "Building plugin $@"
4356 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_EXTD_AUDIT_OBJ:.o=.po) \
4357 +               -Wl,-soname=`basename $@`
4358 +
4359 +bin/full_audit.so: $(VFS_FULL_AUDIT_OBJ:.o=.po)
4360 +       @echo "Building plugin $@"
4361 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_FULL_AUDIT_OBJ:.o=.po) \
4362 +               -Wl,-soname=`basename $@`
4363 +
4364 +bin/recycle.so: $(VFS_RECYCLE_OBJ:.o=.po)
4365 +       @echo "Building plugin $@"
4366 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_RECYCLE_OBJ:.o=.po) \
4367 +               -Wl,-soname=`basename $@`
4368 +
4369 +bin/netatalk.so: $(VFS_NETATALK_OBJ:.o=.po)
4370 +       @echo "Building plugin $@"
4371 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_NETATALK_OBJ:.o=.po) \
4372 +               -Wl,-soname=`basename $@`
4373 +
4374 +bin/fake_perms.so: $(VFS_FAKE_PERMS_OBJ:.o=.po)
4375 +       @echo "Building plugin $@"
4376 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_FAKE_PERMS_OBJ:.o=.po) \
4377 +               -Wl,-soname=`basename $@`
4378 +
4379 +bin/default_quota.so: $(VFS_DEFAULT_QUOTA_OBJ:.o=.po)
4380 +       @echo "Building plugin $@"
4381 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_DEFAULT_QUOTA_OBJ:.o=.po) \
4382 +               -Wl,-soname=`basename $@`
4383 +
4384 +bin/readonly.so: $(VFS_READONLY_OBJ:.o=.po)
4385 +       @echo "Building plugin $@"
4386 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_READONLY_OBJ:.o=.po) \
4387 +               -Wl,-soname=`basename $@`
4388 +
4389 +bin/shadow_copy.so: $(VFS_SHADOW_COPY_OBJ:.o=.po)
4390 +       @echo "Building plugin $@"
4391 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_SHADOW_COPY_OBJ:.o=.po) \
4392 +               -Wl,-soname=`basename $@`
4393 +
4394 +bin/cap.so: $(VFS_CAP_OBJ:.o=.po)
4395 +       @echo "Building plugin $@"
4396 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CAP_OBJ:.o=.po) \
4397 +               -Wl,-soname=`basename $@`
4398 +
4399 +bin/expand_msdfs.so: $(VFS_EXPAND_MSDFS_OBJ:.o=.po)
4400 +       @echo "Building plugin $@"
4401 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_EXPAND_MSDFS_OBJ:.o=.po) \
4402 +               -Wl,-soname=`basename $@`
4403 +
4404 +bin/afsacl.so: $(VFS_AFSACL_OBJ:.o=.po)
4405 +       @echo "Building plugin $@"
4406 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AFSACL_OBJ:.o=.po) \
4407 +               -Wl,-soname=`basename $@`
4408 +
4409 +bin/catia.so: $(VFS_CATIA_OBJ:.o=.po)
4410 +       @echo "Building plugin $@"
4411 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CATIA_OBJ:.o=.po) \
4412 +               -Wl,-soname=`basename $@`
4413 +
4414 +
4415 +bin/wbinfo: $(WBINFO_OBJ) $(POPT_OBJS) bin/.dummy
4416 +       @echo Linking $@
4417 +       @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(WBINFO_OBJ) $(DYNEXP) $(LIBS) $(POPT_OBJS)
4418 +
4419 +bin/ntlm_auth: $(NTLM_AUTH_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
4420 +               $(POPT_OBJS) bin/.dummy
4421 +       @echo Linking $@
4422 +       @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(DYNEXP) $(NTLM_AUTH_OBJ) \
4423 +               $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(LIBS) \
4424 +               $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
4425 +
4426 +bin/pam_smbpass.so: $(PAM_SMBPASS_PICOOBJ)
4427 +       @echo "Linking shared library $@"
4428 +       @$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_SMBPASS_PICOOBJ) -lpam $(DYNEXP) $(LIBS) -lc $(LDAP_LIBS) $(KRB5LIBS)
4429 +
4430 +bin/libmsrpc.a: $(LIBMSRPC_PICOBJ)
4431 +       @-$(AR) -rc $@ $(LIBMSRPC_PICOBJ) 
4432 +
4433 +bin/tdbbackup: $(TDBBACKUP_OBJ) bin/.dummy
4434 +       @echo Linking $@
4435 +       @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBBACKUP_OBJ) 
4436 +
4437 +bin/tdbtool: $(TDBTOOL_OBJ) bin/.dummy
4438 +       @echo Linking $@
4439 +       @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBTOOL_OBJ) 
4440 +
4441 +bin/tdbdump: $(TDBDUMP_OBJ) bin/.dummy
4442 +       @echo Linking $@
4443 +       @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBDUMP_OBJ) 
4444 +
4445 +bin/t_strcmp: bin/libbigballofmud.so torture/t_strcmp.o
4446 +       $(CC) $(FLAGS)  -o $@ $(DYNEXP) $(LIBS) torture/t_strcmp.o -L ./bin -lbigballofmud
4447 +
4448 +bin/t_strstr: bin/libbigballofmud.so torture/t_strstr.o
4449 +       $(CC) $(FLAGS)  -o $@ $(DYNEXP) $(LIBS) torture/t_strstr.o -L ./bin -lbigballofmud
4450 +
4451 +bin/t_stringoverflow: bin/libbigballofmud.so torture/t_stringoverflow.o
4452 +       $(CC) $(FLAGS)  -o $@ $(DYNEXP) torture/t_stringoverflow.o -L./bin -lbigballofmud
4453 +
4454 +bin/t_doschar: bin/libbigballofmud.so torture/t_doschar.o
4455 +       $(CC) $(FLAGS)  -o $@ $(DYNEXP) $(LIBS) torture/t_doschar.o -L ./bin -lbigballofmud
4456 +bin/t_push_ucs2: bin/libbigballofmud.so torture/t_push_ucs2.o
4457 +       $(CC) $(FLAGS)  -o $@ $(DYNEXP) $(LIBS) torture/t_push_ucs2.o -L ./bin -lbigballofmud
4458 +
4459 +bin/t_snprintf: lib/snprintf.c
4460 +       $(CC) $(FLAGS)  -o $@ $(DYNEXP) -DTEST_SNPRINTF lib/snprintf.c -lm
4461 +install: installbin installman installscripts installdat installswat installmodules installclientlib
4462 +
4463 +install-everything: install installmodules
4464 +
4465 +# DESTDIR is used here to prevent packagers wasting their time
4466 +# duplicating the Makefile. Remove it and you will have the privelege
4467 +# of package each samba release for muliple versions of multiple
4468 +# distributions and operating systems, or at least supplying patches
4469 +# to all the packaging files required for this, prior to committing
4470 +# the removal of DESTDIR. Do not remove it even though you think it
4471 +# is not used
4472 +
4473 +installdirs:
4474 +       @$(SHELL) $(srcdir)/script/installdirs.sh $(DESTDIR)$(BASEDIR) $(DESTDIR)$(BINDIR) $(DESTDIR)$(SBINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(DESTDIR)$(PRIVATEDIR) $(DESTDIR)$(PIDDIR) $(DESTDIR)$(LOCKDIR) $(DESTDIR)$(MANDIR)
4475 +
4476 +installservers: all installdirs
4477 +       @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(SBINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(SBIN_PROGS)
4478 +
4479 +installbin: all installdirs
4480 +       @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(SBINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(SBIN_PROGS)
4481 +       @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(BIN_PROGS)
4482 +
4483 +
4484 +# Some symlinks are required for the 'probing' of modules. 
4485 +# This mechanism should go at some point..
4486 +installmodules: modules installdirs
4487 +       @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(VFSLIBDIR) $(VFS_MODULES)
4488 +       @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(PDBLIBDIR) $(PDB_MODULES)
4489 +       @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(RPCLIBDIR) $(RPC_MODULES)
4490 +       @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(IDMAPLIBDIR) $(IDMAP_MODULES)
4491 +       @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(CHARSETLIBDIR) $(CHARSET_MODULES)
4492 +       @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(AUTHLIBDIR) $(AUTH_MODULES)
4493 +       @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(PDBLIBDIR) ldapsam.so ldapsam_compat.so
4494 +       @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) rhosts.so hostsequiv.so
4495 +       @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) sam.so sam_ignoredomain.so
4496 +       @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) domain.so trustdomain.so ntdomain.so
4497 +       @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) builtin.so guest.so fixed_challenge.so name_to_ntstatus.so
4498 +
4499 +installscripts: installdirs
4500 +       @$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(DESTDIR)$(BINDIR) $(SCRIPTS)
4501 +
4502 +installdat: installdirs
4503 +       @$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR)$(LIBDIR) $(srcdir)
4504 +
4505 +installmsg: installdirs
4506 +       @$(SHELL) $(srcdir)/script/installmsg.sh $(DESTDIR)$(LIBDIR) $(srcdir)
4507 +
4508 +installswat: installdirs installmsg
4509 +       @$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR)$(SWATDIR) $(srcdir)
4510 +
4511 +installclientlib: installdirs libsmbclient
4512 +       @$(SHELL) $(srcdir)/script/installdirs.sh $(DESTDIR)$(LIBDIR)
4513 +       -$(INSTALLCLIENTCMD_SH) bin/libsmbclient.so $(DESTDIR)$(LIBDIR)
4514 +       -$(INSTALLCLIENTCMD_A) bin/libsmbclient.a $(DESTDIR)$(LIBDIR)
4515 +       @$(SHELL) $(srcdir)/script/installdirs.sh $(DESTDIR)${prefix}/include
4516 +       -$(INSTALLCMD) $(srcdir)/include/libsmbclient.h $(DESTDIR)${prefix}/include
4517 +
4518 +# Python extensions
4519 +
4520 +PYTHON_OBJS = $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(LIBSMB_OBJ) $(RPC_PARSE_OBJ) \
4521 +       $(LIBMSRPC_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
4522 +       $(SECRETS_OBJ) $(KRBCLIENT_OBJ) $(SMBLDAP_OBJ)
4523 +
4524 +PYTHON_PICOBJS = $(PYTHON_OBJS:.o=.po)
4525 +
4526 +python_ext: $(PYTHON_PICOBJS)
4527 +       @if test -z "$(PYTHON)"; then \
4528 +               echo Use the option --with-python to configure python; \
4529 +               exit 1; \
4530 +       fi
4531 +       PYTHON_OBJS="$(PYTHON_PICOBJS)" \
4532 +       PYTHON_CFLAGS="$(CFLAGS) $(CPPFLAGS) $(FLAGS)" \
4533 +       LIBS="$(LDFLAGS) $(LIBS) $(PASSDB_LIBS) $(IDMAP_LIBS) $(KRB5LIBS) $(LDAP_LIBS)" \
4534 +               $(PYTHON) python/setup.py build
4535 +
4536 +python_install: $(PYTHON_PICOBJS)
4537 +       @if test -z "$(PYTHON)"; then \
4538 +               echo Use the option --with-python to configure python; \
4539 +               exit 1; \
4540 +       fi
4541 +       PYTHON_OBJS="$(PYTHON_PICOBJS)" \
4542 +       PYTHON_CFLAGS="$(CFLAGS) $(CPPFLAGS)" \
4543 +       LIBS="$(LDFLAGS) $(LIBS)" \
4544 +               $(PYTHON) python/setup.py install
4545 +
4546 +python_clean:
4547 +       @-if test -n "$(PYTHON)"; then $(PYTHON) python/setup.py clean; fi
4548 +
4549 +# revert to the previously installed version
4550 +revert:
4551 +       @$(SHELL) $(srcdir)/script/revert.sh $(SBINDIR) $(SBIN_PROGS) 
4552 +       @$(SHELL) $(srcdir)/script/revert.sh $(BINDIR) $(BIN_PROGS) $(SCRIPTS)
4553 +
4554 +installman: installdirs
4555 +       @$(SHELL) $(srcdir)/script/installman.sh $(DESTDIR)$(MANDIR) $(srcdir) C ""
4556 +
4557 +.PHONY: showlayout
4558 +
4559 +showlayout: 
4560 +       @echo "Samba will be installed into:"
4561 +       @echo "  basedir:     $(BASEDIR)"
4562 +       @echo "  bindir:      $(BINDIR)"
4563 +       @echo "  sbindir:     $(SBINDIR)"
4564 +       @echo "  libdir:      $(LIBDIR)"
4565 +       @echo "  vardir:      $(VARDIR)"
4566 +       @echo "  mandir:      $(MANDIR)"
4567 +       @echo "  privatedir:  $(PRIVATE_DIR)"
4568 +       @echo "  configdir:   $(CONFIGDIR)"
4569 +       @echo "  lockdir:     $(LOCKDIR)"
4570 +       @echo "  piddir:      $(PIDDIR)"
4571 +       @echo "  swatdir:     $(SWATDIR)"
4572 +
4573 +
4574 +uninstall: uninstallman uninstallbin uninstallscripts uninstallmodules
4575 +
4576 +uninstallman:
4577 +       @$(SHELL) $(srcdir)/script/uninstallman.sh $(DESTDIR)$(MANDIR) $(srcdir) C
4578 +
4579 +uninstallbin:
4580 +       @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(SBINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(DESTDIR)$(SBIN_PROGS)
4581 +       @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(DESTDIR)$(BIN_PROGS)
4582 +
4583 +uninstallmodules:
4584 +       @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(VFSLIBDIR) $(DESTDIR)$(VFS_MODULES)
4585 +       @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(PDBLIBDIR) $(DESTDIR)$(PDB_MODULES)
4586 +       @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(RPCLIBDIR) $(DESTDIR)$(RPC_MODULES)
4587 +       @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(CHARSETLIBDIR) $(DESTDIR)$(CHARSET_MODULES)
4588 +       @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(AUTHLIBDIR) $(DESTDIR)$(AUTH_MODULES)
4589 +
4590 +uninstallscripts:
4591 +       @$(SHELL) $(srcdir)/script/uninstallscripts.sh $(INSTALLPERMS) $(DESTDIR)$(BINDIR) $(SCRIPTS)
4592 +
4593 +# Toplevel clean files
4594 +TOPFILES=dynconfig.o dynconfig.po
4595 +
4596 +clean: delheaders python_clean
4597 +       -rm -f core */*~ *~ */*.o */*.po */*.so \
4598 +               $(TOPFILES) $(BIN_PROGS) $(SBIN_PROGS) $(MODULES) $(TORTURE_PROGS) \
4599 +               $(LIBSMBCLIENT) $(LIBSMBSHAREMODES) $(EVERYTHING_PROGS) .headers.stamp 
4600 +       -rm -rf t_dir
4601 +       -rm -rf bin/lib*
4602 +       -find . -name *.o | xargs rm -f
4603 +       -find . -name *.po | xargs rm -f
4604 +       -find . -name *.so | xargs rm -f
4605 +
4606 +# Making this target will just make sure that the prototype files
4607 +# exist, not necessarily that they are up to date.  Since they're
4608 +# removed by "make clean" this will always be run when you do anything
4609 +# afterwards.
4610 +proto_exists: include/proto.h include/build_env.h \
4611 +       nsswitch/winbindd_proto.h web/swat_proto.h \
4612 +       client/client_proto.h utils/net_proto.h utils/ntlm_auth_proto.h
4613 +
4614 +# AR7  smbd/build_options.c
4615 +
4616 +delheaders:
4617 +       @echo Removing prototype headers
4618 +       @rm -f include/proto.h include/build_env.h  \
4619 +               nsswitch/winbindd_proto.h web/swat_proto.h \
4620 +               client/client_proto.h utils/net_proto.h \
4621 +               smbd/build_options.c
4622 +
4623 +MKPROTO_SH = $(srcdir)/script/mkproto.sh
4624 +
4625 +# AR7 include/proto.h: smbd/build_options.c
4626 +
4627 +include/proto.h:
4628 +       @echo Building include/proto.h
4629 +       @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
4630 +         -h _PROTO_H_ $(builddir)/include/proto.h \
4631 +         $(PROTO_OBJ)
4632 +
4633 +include/build_env.h: script/build_env.sh
4634 +       @echo Building include/build_env.h
4635 +       @$(SHELL) $(srcdir)/script/build_env.sh $(srcdir) $(builddir) $(CC) \
4636 +         > $(builddir)/include/build_env.h
4637 +
4638 +nsswitch/winbindd_proto.h: 
4639 +       @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
4640 +         -h _WINBINDD_PROTO_H_ $(builddir)/nsswitch/winbindd_proto.h \
4641 +         $(WINBINDD_OBJ1)
4642 +
4643 +web/swat_proto.h: 
4644 +       @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
4645 +         -h _SWAT_PROTO_H_ $(builddir)/web/swat_proto.h \
4646 +         $(SWAT_OBJ1)
4647 +
4648 +client/client_proto.h: 
4649 +       @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
4650 +         -h _CLIENT_PROTO_H_ $(builddir)/client/client_proto.h \
4651 +         $(CLIENT_OBJ1)
4652 +
4653 +utils/net_proto.h: 
4654 +       @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
4655 +         -h _NET_PROTO_H_ $(builddir)/utils/net_proto.h \
4656 +         $(NET_OBJ1)
4657 +
4658 +utils/ntlm_auth_proto.h: 
4659 +       @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
4660 +         -h _NTLM_AUTH_PROTO_H_ $(builddir)/utils/ntlm_auth_proto.h \
4661 +         $(NTLM_AUTH_OBJ1)
4662 +
4663 +# "make headers" or "make proto" calls a subshell because we need to
4664 +# make sure these commands are executed in sequence even for a
4665 +# parallel make.
4666 +headers: 
4667 +       $(MAKE) delheaders; \
4668 +       $(MAKE) smbd/build_options.c; \
4669 +       $(MAKE) include/proto.h; \
4670 +       $(MAKE) include/build_env.h; \
4671 +       $(MAKE) nsswitch/winbindd_proto.h; \
4672 +       $(MAKE) web/swat_proto.h; \
4673 +       $(MAKE) client/client_proto.h; \
4674 +       $(MAKE) utils/ntlm_auth_proto.h; \
4675 +       $(MAKE) utils/net_proto.h;
4676 +
4677 +proto: headers 
4678 +
4679 +.PHONY: headers proto
4680 +
4681 +etags:
4682 +       etags `find $(srcdir) -name "*.[ch]" | grep -v /CVS/`
4683 +
4684 +ctags:
4685 +       ctags `find $(srcdir) -name "*.[ch]" | grep -v /CVS/`
4686 +
4687 +realclean: clean delheaders
4688 +       -rm -f config.log bin/.dummy script/findsmb
4689 +
4690 +distclean: realclean
4691 +       -rm -f include/stamp-h
4692 +       -rm -f include/config.h Makefile
4693 +       -rm -f config.status config.cache so_locations
4694 +       -rm -rf .deps TAGS
4695 +
4696 +realdistclean: distclean
4697 +       -rm -f include/config.h.in
4698 +       -rm -f include/version.h
4699 +       -rm -f configure
4700 +
4701 +# this target is really just for my use. It only works on a limited
4702 +# range of machines and is used to produce a list of potentially
4703 +# dead (ie. unused) functions in the code. (tridge)
4704 +finddead:
4705 +       nm */*.o |grep 'U ' | awk '{print $$2}' | sort -u > nmused.txt
4706 +       nm */*.o |grep 'T ' | awk '{print $$3}' | sort -u > nmfns.txt
4707 +       comm -13 nmused.txt nmfns.txt 
4708 +
4709 +
4710 +# when configure.in is updated, reconfigure
4711 +$(srcdir)/configure: $(srcdir)/configure.in
4712 +       @echo "WARNING: you need to rerun ./autogen.sh"
4713 +
4714 +config.status: $(srcdir)/configure
4715 +       @echo "WARNING: you need to run ./configure"
4716 +
4717 +# AR7 Makefile: $(srcdir)/Makefile.in config.status
4718 +# AR7 @echo "WARNING: you need to run ./config.status"
4719 +
4720 +######################################################################
4721 +# Samba Testing Framework
4722 +
4723 +# FIXME: LD_LIBRARY_PATH is not portable, but in the absence of
4724 +# libtool I don't know a better way to do it.  Perhaps we should fix
4725 +# libbigballofmud to link statically?
4726 +##
4727 +## not working...to be replaced by 'make test' --jerry
4728 +##
4729 +#check: check-programs
4730 +#      LD_LIBRARY_PATH="`pwd`/bin:$$LD_LIBRARY_PATH" \
4731 +#      PATH="`pwd`/bin:$$PATH" \
4732 +#      python stf/standardcheck.py; \
4733 +#      if test -n "$(PYTHON)"; then \
4734 +#              python stf/pythoncheck.py; \
4735 +#      fi
4736 +
4737 +# These are called by the test suite and need to be built before
4738 +# running it.  For the time being we don't build all of BIN_PROGS,
4739 +# because they're not all needed.
4740 +check-programs: bin/t_strcmp bin/t_strstr bin/t_push_ucs2 bin/smbcontrol bin/t_snprintf
4741 +
4742 +test: all
4743 +       @if test -z "$(SMB4TORTURE)"; then \
4744 +               echo "Please set the SMB4TORTURE environment variable"; \
4745 +               exit 1; \
4746 +       fi
4747 +       ./script/smb4torture.sh `pwd`/prefix-test $(SMB4TORTURE)
4748 diff -urN samba-3.0.24.orig/source/passdb/lookup_sid.c samba-3.0.24/source/passdb/lookup_sid.c
4749 --- samba-3.0.24.orig/source/passdb/lookup_sid.c        2007-02-04 19:59:21.000000000 +0100
4750 +++ samba-3.0.24/source/passdb/lookup_sid.c     2007-08-07 09:38:18.000000000 +0200
4751 @@ -421,10 +421,10 @@
4752                         return False;
4753                 }
4754  
4755 -               become_root_uid_only();
4756 +               become_root();
4757                 result = pdb_lookup_rids(domain_sid, num_rids, rids,
4758                                          *names, *types);
4759 -               unbecome_root_uid_only();
4760 +               unbecome_root();
4761  
4762                 return (NT_STATUS_IS_OK(result) ||
4763                         NT_STATUS_EQUAL(result, NT_STATUS_NONE_MAPPED) ||
4764 @@ -1085,9 +1085,9 @@
4765                 goto done;
4766         }
4767  
4768 -       become_root_uid_only();
4769 +       become_root();
4770         ret = pdb_uid_to_rid(uid, &rid);
4771 -       unbecome_root_uid_only();
4772 +       unbecome_root();
4773  
4774         if (ret) {
4775                 /* This is a mapped user */
4776 @@ -1131,9 +1131,9 @@
4777                 goto done;
4778         }
4779  
4780 -       become_root_uid_only();
4781 +       become_root();
4782         ret = pdb_gid_to_sid(gid, psid);
4783 -       unbecome_root_uid_only();
4784 +       unbecome_root();
4785  
4786         if (ret) {
4787                 /* This is a mapped group */
4788 @@ -1179,9 +1179,9 @@
4789                 union unid_t id;
4790                 BOOL ret;
4791  
4792 -               become_root_uid_only();
4793 +               become_root();
4794                 ret = pdb_sid_to_id(psid, &id, &type);
4795 -               unbecome_root_uid_only();
4796 +               unbecome_root();
4797  
4798                 if (ret) {
4799                         if (type != SID_NAME_USER) {
4800 @@ -1259,9 +1259,9 @@
4801              sid_check_is_in_wellknown_domain(psid))) {
4802                 BOOL ret;
4803  
4804 -               become_root_uid_only();
4805 +               become_root();
4806                 ret = pdb_getgrsid(&map, *psid);
4807 -               unbecome_root_uid_only();
4808 +               unbecome_root();
4809  
4810                 if (ret) {
4811                         *pgid = map.gid;
4812 @@ -1273,9 +1273,9 @@
4813         if (sid_peek_check_rid(get_global_sam_sid(), psid, &rid)) {
4814                 BOOL ret;
4815  
4816 -               become_root_uid_only();
4817 +               become_root();
4818                 ret = pdb_sid_to_id(psid, &id, &type);
4819 -               unbecome_root_uid_only();
4820 +               unbecome_root();
4821  
4822                 if (ret) {
4823                         if ((type != SID_NAME_DOM_GRP) &&
4824 diff -urN samba-3.0.24.orig/source/printing/nt_printing.c samba-3.0.24/source/printing/nt_printing.c
4825 --- samba-3.0.24.orig/source/printing/nt_printing.c     2007-02-04 20:09:01.000000000 +0100
4826 +++ samba-3.0.24/source/printing/nt_printing.c  2007-08-07 09:38:18.000000000 +0200
4827 @@ -2984,11 +2984,15 @@
4828         return True;
4829  }
4830  
4831 +/*****************************************************************
4832 + ****************************************************************/
4833 +
4834  static void store_printer_guid(NT_PRINTER_INFO_LEVEL_2 *info2, 
4835                                struct uuid guid)
4836  {
4837         int i;
4838         REGVAL_CTR *ctr=NULL;
4839 +       UNISTR2 unistr_guid;
4840  
4841         /* find the DsSpooler key */
4842         if ((i = lookup_printerkey(info2->data, SPOOL_DSSPOOLER_KEY)) < 0)
4843 @@ -2996,8 +3000,18 @@
4844         ctr = info2->data->keys[i].values;
4845  
4846         regval_ctr_delvalue(ctr, "objectGUID");
4847 -       regval_ctr_addvalue(ctr, "objectGUID", REG_BINARY, 
4848 -                           (char *) &guid, sizeof(struct uuid));       
4849 +
4850 +       /* We used to store this as a REG_BINARY but that causes
4851 +          Vista to whine */
4852 +
4853 +       ZERO_STRUCT( unistr_guid );     
4854 +       init_unistr2( &unistr_guid, smb_uuid_string_static(guid),
4855 +                     UNI_STR_TERMINATE );
4856 +
4857 +       regval_ctr_addvalue(ctr, "objectGUID", REG_SZ, 
4858 +                           (char *)unistr_guid.buffer, 
4859 +                           unistr_guid.uni_max_len*2);
4860 +       
4861  }
4862  
4863  static WERROR nt_printer_publish_ads(ADS_STRUCT *ads,
4864 @@ -3254,6 +3268,7 @@
4865         REGISTRY_VALUE *guid_val;
4866         WERROR win_rc;
4867         int i;
4868 +       BOOL ret = False;
4869  
4870         win_rc = get_a_printer(print_hnd, &printer, 2, lp_servicename(snum));
4871  
4872 @@ -3267,12 +3282,36 @@
4873                 return False;
4874         }
4875  
4876 -       /* fetching printer guids really ought to be a separate function.. */
4877 -       if (guid && regval_size(guid_val) == sizeof(struct uuid))
4878 -               memcpy(guid, regval_data_p(guid_val), sizeof(struct uuid));
4879 +       /* fetching printer guids really ought to be a separate function. */
4880 +
4881 +       if ( guid ) {   
4882 +               fstring guid_str;
4883 +               
4884 +               /* We used to store the guid as REG_BINARY, then swapped 
4885 +                  to REG_SZ for Vista compatibility so check for both */
4886 +
4887 +               switch ( regval_type(guid_val) ){
4888 +               case REG_SZ:            
4889 +                       rpcstr_pull( guid_str, regval_data_p(guid_val), 
4890 +                                    sizeof(guid_str)-1, -1, STR_TERMINATE );
4891 +                       ret = smb_string_to_uuid( guid_str, guid );
4892 +                       break;                  
4893 +               case REG_BINARY:
4894 +                       if ( regval_size(guid_val) != sizeof(struct uuid) ) {
4895 +                               ret = False;
4896 +                               break;
4897 +                       }
4898 +                       memcpy(guid, regval_data_p(guid_val), sizeof(struct uuid));
4899 +                       break;
4900 +               default:
4901 +                       DEBUG(0,("is_printer_published: GUID value stored as "
4902 +                                "invaluid type (%d)\n", regval_type(guid_val) ));                      
4903 +                       break;
4904 +               }
4905 +       }
4906  
4907         free_a_printer(&printer, 2);
4908 -       return True;
4909 +       return ret;
4910  }
4911  #else
4912  WERROR nt_printer_publish(Printer_entry *print_hnd, int snum, int action)
4913 @@ -3539,13 +3578,43 @@
4914                         break;
4915                 }
4916                 
4917 -               /* add the new value */
4918 +               DEBUG(8,("specific: [%s:%s], len: %d\n", keyname, valuename, size));
4919 +
4920 +               /* Vista doesn't like unknown REG_BINARY values in DsSpooler.  
4921 +                  Thanks to Martin Zielinski for the hint. */
4922 +
4923 +               if ( type == REG_BINARY && 
4924 +                    strequal( keyname, SPOOL_DSSPOOLER_KEY ) && 
4925 +                    strequal( valuename, "objectGUID" ) ) 
4926 +               {
4927 +                       struct uuid guid;
4928 +                       UNISTR2 unistr_guid;
4929 +
4930 +                       ZERO_STRUCT( unistr_guid );
4931 +                       
4932 +                       /* convert the GUID to a UNICODE string */
4933 +                       
4934 +                       memcpy( &guid, data_p, sizeof(struct uuid) );
4935 +                       
4936 +                       init_unistr2( &unistr_guid, smb_uuid_string_static(guid), 
4937 +                                     UNI_STR_TERMINATE );
4938 +                       
4939 +                       regval_ctr_addvalue( printer_data->keys[key_index].values, 
4940 +                                            valuename, REG_SZ, 
4941 +                                            (const char *)unistr_guid.buffer, 
4942 +                                            unistr_guid.uni_str_len*2 );
4943 +
4944 +               } else {
4945 +                       /* add the value */
4946 +
4947 +                       regval_ctr_addvalue( printer_data->keys[key_index].values, 
4948 +                                            valuename, type, (const char *)data_p, 
4949 +                                            size );
4950 +               }
4951                 
4952 -               regval_ctr_addvalue( printer_data->keys[key_index].values, valuename, type, (const char *)data_p, size );
4953  
4954                 SAFE_FREE(data_p); /* 'B' option to tdbpack does a malloc() */
4955  
4956 -               DEBUG(8,("specific: [%s:%s], len: %d\n", keyname, valuename, size));
4957         }
4958  
4959         return len;
4960 diff -urN samba-3.0.24.orig/source/printing/print_generic.c samba-3.0.24/source/printing/print_generic.c
4961 --- samba-3.0.24.orig/source/printing/print_generic.c   2007-02-04 19:59:13.000000000 +0100
4962 +++ samba-3.0.24/source/printing/print_generic.c        2007-08-07 09:38:18.000000000 +0200
4963 @@ -58,7 +58,7 @@
4964         if ( do_sub && snum != -1 )
4965                 standard_sub_snum(snum,syscmd,sizeof(syscmd));
4966                 
4967 -       ret = smbrun(syscmd,outfd);
4968 +       ret = smbrun_no_sanitize(syscmd,outfd);
4969  
4970         DEBUG(3,("Running the command `%s' gave %d\n",syscmd,ret));
4971  
4972 diff -urN samba-3.0.24.orig/source/registry/regfio.c samba-3.0.24/source/registry/regfio.c
4973 --- samba-3.0.24.orig/source/registry/regfio.c  2007-02-04 19:59:26.000000000 +0100
4974 +++ samba-3.0.24/source/registry/regfio.c       2007-08-07 09:38:18.000000000 +0200
4975 @@ -642,8 +642,12 @@
4976                 return False;
4977  
4978         if ( UNMARSHALLING(&hbin->ps) ) {
4979 -               if ( !(lf->hashes = PRS_ALLOC_MEM( &hbin->ps, REGF_HASH_REC, lf->num_keys )) )
4980 -                       return False;
4981 +               if (lf->num_keys) {
4982 +                       if ( !(lf->hashes = PRS_ALLOC_MEM( &hbin->ps, REGF_HASH_REC, lf->num_keys )) )
4983 +                               return False;
4984 +               } else {
4985 +                       lf->hashes = NULL;
4986 +               }
4987         }
4988  
4989         for ( i=0; i<lf->num_keys; i++ ) {
4990 diff -urN samba-3.0.24.orig/source/registry/reg_frontend.c samba-3.0.24/source/registry/reg_frontend.c
4991 --- samba-3.0.24.orig/source/registry/reg_frontend.c    2005-11-09 19:29:03.000000000 +0100
4992 +++ samba-3.0.24/source/registry/reg_frontend.c 2007-07-17 13:19:05.000000000 +0200
4993 @@ -35,9 +35,11 @@
4994  
4995  REGISTRY_HOOK reg_hooks[] = {
4996  #ifndef REG_TDB_ONLY 
4997 +#ifndef AVM_NO_PRINTING
4998    { KEY_PRINTING,              &printing_ops },
4999    { KEY_PRINTING_2K,           &printing_ops },
5000    { KEY_PRINTING_PORTS,        &printing_ops },
5001 +#endif
5002    { KEY_SHARES,                &shares_reg_ops },
5003  #endif
5004    { NULL, NULL }
5005 diff -urN samba-3.0.24.orig/source/rpc_client/cli_pipe.c samba-3.0.24/source/rpc_client/cli_pipe.c
5006 --- samba-3.0.24.orig/source/rpc_client/cli_pipe.c      2007-02-04 19:59:11.000000000 +0100
5007 +++ samba-3.0.24/source/rpc_client/cli_pipe.c   2007-07-17 13:19:05.000000000 +0200
5008 @@ -619,7 +619,11 @@
5009  
5010                         DEBUG(1, ("cli_pipe_validate_current_pdu: RPC fault code %s received from remote machine %s "
5011                                 "pipe %s fnum 0x%x!\n",
5012 +#if 1 /* AVM */
5013 +                               "ERRSTR-REPLACEMENT",
5014 +#else
5015                                 dcerpc_errstr(NT_STATUS_V(fault_resp.status)),
5016 +#endif
5017                                 cli->cli->desthost,
5018                                 cli->pipe_name,
5019                                 (unsigned int)cli->fnum));
5020 diff -urN samba-3.0.24.orig/source/rpc_parse/parse_dfs.c samba-3.0.24/source/rpc_parse/parse_dfs.c
5021 --- samba-3.0.24.orig/source/rpc_parse/parse_dfs.c      2007-02-04 19:59:22.000000000 +0100
5022 +++ samba-3.0.24/source/rpc_parse/parse_dfs.c   2007-08-07 09:38:18.000000000 +0200
5023 @@ -325,7 +325,9 @@
5024                         return False;
5025                 
5026                 if (UNMARSHALLING(ps)) {
5027 -                       v->stores = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->stores)*v->num_stores);
5028 +                       v->stores = PRS_ALLOC_MEM(ps,NETDFS_DFS_STORAGEINFO,v->num_stores);
5029 +                       if (!v->stores)
5030 +                               return False;
5031                 }
5032                 for (i_stores_1=0; i_stores_1<v->num_stores;i_stores_1++) {
5033                         if (!netdfs_io_dfs_StorageInfo_p("stores", &v->stores[i_stores_1], ps, depth))
5034 @@ -447,7 +449,9 @@
5035                         return False;
5036                 
5037                 if (UNMARSHALLING(ps)) {
5038 -                       v->stores = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->stores)*v->num_stores);
5039 +                       v->stores = PRS_ALLOC_MEM(ps,NETDFS_DFS_STORAGEINFO,v->num_stores);
5040 +                       if (!v->stores)
5041 +                               return False;
5042                 }
5043                 for (i_stores_1=0; i_stores_1<v->num_stores;i_stores_1++) {
5044                         if (!netdfs_io_dfs_StorageInfo_p("stores", &v->stores[i_stores_1], ps, depth))
5045 @@ -920,7 +924,9 @@
5046                         return False;
5047                 
5048                 if (UNMARSHALLING(ps)) {
5049 -                       v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
5050 +                       v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO1,v->count);
5051 +                       if (!v->s)
5052 +                               return False;
5053                 }
5054                 for (i_s_1=0; i_s_1<v->count;i_s_1++) {
5055                         if (!netdfs_io_dfs_Info1_p("s", &v->s[i_s_1], ps, depth))
5056 @@ -986,7 +992,9 @@
5057                         return False;
5058                 
5059                 if (UNMARSHALLING(ps)) {
5060 -                       v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
5061 +                       v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO2,v->count);
5062 +                       if (!v->s)
5063 +                               return False;
5064                 }
5065                 for (i_s_1=0; i_s_1<v->count;i_s_1++) {
5066                         if (!netdfs_io_dfs_Info2_p("s", &v->s[i_s_1], ps, depth))
5067 @@ -1052,7 +1060,9 @@
5068                         return False;
5069                 
5070                 if (UNMARSHALLING(ps)) {
5071 -                       v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
5072 +                       v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO3,v->count);
5073 +                       if (!v->s)
5074 +                               return False;
5075                 }
5076                 for (i_s_1=0; i_s_1<v->count;i_s_1++) {
5077                         if (!netdfs_io_dfs_Info3_p("s", &v->s[i_s_1], ps, depth))
5078 @@ -1118,7 +1128,9 @@
5079                         return False;
5080                 
5081                 if (UNMARSHALLING(ps)) {
5082 -                       v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
5083 +                       v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO4,v->count);
5084 +                       if (!v->s)
5085 +                               return False;
5086                 }
5087                 for (i_s_1=0; i_s_1<v->count;i_s_1++) {
5088                         if (!netdfs_io_dfs_Info4_p("s", &v->s[i_s_1], ps, depth))
5089 @@ -1184,7 +1196,9 @@
5090                         return False;
5091                 
5092                 if (UNMARSHALLING(ps)) {
5093 -                       v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
5094 +                       v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO200,v->count);
5095 +                       if (!v->s)
5096 +                               return False;
5097                 }
5098                 for (i_s_1=0; i_s_1<v->count;i_s_1++) {
5099                         if (!netdfs_io_dfs_Info200_p("s", &v->s[i_s_1], ps, depth))
5100 @@ -1250,7 +1264,9 @@
5101                         return False;
5102                 
5103                 if (UNMARSHALLING(ps)) {
5104 -                       v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
5105 +                       v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO300,v->count);
5106 +                       if (!v->s)
5107 +                               return False;
5108                 }
5109                 for (i_s_1=0; i_s_1<v->count;i_s_1++) {
5110                         if (!netdfs_io_dfs_Info300_p("s", &v->s[i_s_1], ps, depth))
5111 diff -urN samba-3.0.24.orig/source/rpc_parse/parse_lsa.c samba-3.0.24/source/rpc_parse/parse_lsa.c
5112 --- samba-3.0.24.orig/source/rpc_parse/parse_lsa.c      2007-02-04 19:59:22.000000000 +0100
5113 +++ samba-3.0.24/source/rpc_parse/parse_lsa.c   2007-08-07 09:38:18.000000000 +0200
5114 @@ -1171,7 +1171,7 @@
5115  
5116         /* Mallocate memory if we're unpacking from the wire */
5117  
5118 -       if (UNMARSHALLING(ps)) {
5119 +       if (UNMARSHALLING(ps) && sen->num_entries) {
5120                 if ((sen->ptr_sid = PRS_ALLOC_MEM( ps, uint32, sen->num_entries)) == NULL) {
5121                         DEBUG(3, ("init_lsa_sid_enum(): out of memory for "
5122                                   "ptr_sid\n"));
5123 @@ -1349,12 +1349,17 @@
5124                                &trn->num_entries2))
5125                         return False;
5126  
5127 -               if (UNMARSHALLING(ps)) {
5128 -                       if ((trn->name = PRS_ALLOC_MEM(ps, LSA_TRANS_NAME, trn->num_entries)) == NULL) {
5129 +               if (trn->num_entries2 != trn->num_entries) {
5130 +                       /* RPC fault */
5131 +                       return False;
5132 +               }
5133 +
5134 +               if (UNMARSHALLING(ps) && trn->num_entries2) {
5135 +                       if ((trn->name = PRS_ALLOC_MEM(ps, LSA_TRANS_NAME, trn->num_entries2)) == NULL) {
5136                                 return False;
5137                         }
5138  
5139 -                       if ((trn->uni_name = PRS_ALLOC_MEM(ps, UNISTR2, trn->num_entries)) == NULL) {
5140 +                       if ((trn->uni_name = PRS_ALLOC_MEM(ps, UNISTR2, trn->num_entries2)) == NULL) {
5141                                 return False;
5142                         }
5143                 }
5144 @@ -1406,12 +1411,17 @@
5145                                &trn->num_entries2))
5146                         return False;
5147  
5148 -               if (UNMARSHALLING(ps)) {
5149 -                       if ((trn->name = PRS_ALLOC_MEM(ps, LSA_TRANS_NAME2, trn->num_entries)) == NULL) {
5150 +               if (trn->num_entries2 != trn->num_entries) {
5151 +                       /* RPC fault */
5152 +                       return False;
5153 +               }
5154 +
5155 +               if (UNMARSHALLING(ps) && trn->num_entries2) {
5156 +                       if ((trn->name = PRS_ALLOC_MEM(ps, LSA_TRANS_NAME2, trn->num_entries2)) == NULL) {
5157                                 return False;
5158                         }
5159  
5160 -                       if ((trn->uni_name = PRS_ALLOC_MEM(ps, UNISTR2, trn->num_entries)) == NULL) {
5161 +                       if ((trn->uni_name = PRS_ALLOC_MEM(ps, UNISTR2, trn->num_entries2)) == NULL) {
5162                                 return False;
5163                         }
5164                 }
5165 @@ -1678,7 +1688,7 @@
5166                         return False;
5167                 }
5168  
5169 -               if (UNMARSHALLING(ps)) {
5170 +               if (UNMARSHALLING(ps) && out->num_entries2) {
5171                         if ((out->dom_rid = PRS_ALLOC_MEM(ps, DOM_RID, out->num_entries2))
5172                             == NULL) {
5173                                 DEBUG(3, ("lsa_io_r_lookup_names(): out of memory\n"));
5174 @@ -1803,7 +1813,7 @@
5175                         return False;
5176                 }
5177  
5178 -               if (UNMARSHALLING(ps)) {
5179 +               if (UNMARSHALLING(ps) && out->num_entries2) {
5180                         if ((out->dom_rid = PRS_ALLOC_MEM(ps, DOM_RID2, out->num_entries2))
5181                             == NULL) {
5182                                 DEBUG(3, ("lsa_io_r_lookup_names2(): out of memory\n"));
5183 @@ -1956,7 +1966,7 @@
5184                         return False;
5185                 }
5186  
5187 -               if (UNMARSHALLING(ps)) {
5188 +               if (UNMARSHALLING(ps) && out->num_entries2) {
5189                         if ((out->trans_sids = PRS_ALLOC_MEM(ps, LSA_TRANSLATED_SID3, out->num_entries2))
5190                             == NULL) {
5191                                 DEBUG(3, ("lsa_io_r_lookup_names3(): out of memory\n"));
5192 @@ -2085,7 +2095,7 @@
5193                         return False;
5194                 }
5195  
5196 -               if (UNMARSHALLING(ps)) {
5197 +               if (UNMARSHALLING(ps) && out->num_entries2) {
5198                         if ((out->trans_sids = PRS_ALLOC_MEM(ps, LSA_TRANSLATED_SID3, out->num_entries2))
5199                             == NULL) {
5200                                 DEBUG(3, ("lsa_io_r_lookup_names4(): out of memory\n"));
5201 @@ -2324,7 +2334,7 @@
5202                 if(!prs_uint32("count1", ps, depth, &out->count1))
5203                         return False;
5204  
5205 -               if (UNMARSHALLING(ps))
5206 +               if (UNMARSHALLING(ps) && out->count1)
5207                         if (!(out->privs = PRS_ALLOC_MEM(ps, LSA_PRIV_ENTRY, out->count1)))
5208                                 return False;
5209  
5210 @@ -2759,7 +2769,7 @@
5211  
5212  static BOOL lsa_io_privilege_set(const char *desc, PRIVILEGE_SET *out, prs_struct *ps, int depth)
5213  {
5214 -       uint32 i;
5215 +       uint32 i, dummy;
5216  
5217         prs_debug(ps, depth, desc, "lsa_io_privilege_set");
5218         depth++;
5219 @@ -2767,7 +2777,7 @@
5220         if(!prs_align(ps))
5221                 return False;
5222   
5223 -       if(!prs_uint32("count", ps, depth, &out->count))
5224 +       if(!prs_uint32("count", ps, depth, &dummy))
5225                 return False;
5226         if(!prs_uint32("control", ps, depth, &out->control))
5227                 return False;
5228 @@ -3886,7 +3896,7 @@
5229         prs_debug(ps, depth, desc, "smb_io_lsa_data_buf");
5230         depth++;
5231  
5232 -       if ( UNMARSHALLING(ps) ) {
5233 +       if ( UNMARSHALLING(ps) && length ) {
5234                 if ( !(buf->data = PRS_ALLOC_MEM( ps, uint8, length )) )
5235                         return False;
5236         }
5237 @@ -3900,7 +3910,7 @@
5238         if (!prs_uint32("length", ps, depth, &buf->length))
5239                 return False;
5240  
5241 -       if(!prs_uint8s(False, "data", ps, depth, buf->data, size))
5242 +       if(!prs_uint8s(False, "data", ps, depth, buf->data, length))
5243                 return False;
5244  
5245         return True;
5246 diff -urN samba-3.0.24.orig/source/rpc_parse/parse_net.c samba-3.0.24/source/rpc_parse/parse_net.c
5247 --- samba-3.0.24.orig/source/rpc_parse/parse_net.c      2007-02-04 19:59:22.000000000 +0100
5248 +++ samba-3.0.24/source/rpc_parse/parse_net.c   2007-08-07 09:38:18.000000000 +0200
5249 @@ -1721,9 +1721,13 @@
5250         }
5251  
5252         if (UNMARSHALLING(ps)) {
5253 -               usr->gids = PRS_ALLOC_MEM(ps, DOM_GID, usr->num_groups);
5254 -               if (usr->gids == NULL)
5255 -                       return False;
5256 +               if (usr->num_groups) {
5257 +                       usr->gids = PRS_ALLOC_MEM(ps, DOM_GID, usr->num_groups);
5258 +                       if (usr->gids == NULL)
5259 +                               return False;
5260 +               } else {
5261 +                       usr->gids = NULL;
5262 +               }
5263         }
5264  
5265         for (i = 0; i < usr->num_groups; i++) {
5266 @@ -1756,10 +1760,15 @@
5267                         return False;
5268  
5269                 if (UNMARSHALLING(ps)) {
5270 -                       usr->other_sids = PRS_ALLOC_MEM(ps, DOM_SID2, usr->num_other_sids);
5271 -                       usr->other_sids_attrib =
5272 -                               PRS_ALLOC_MEM(ps, uint32, usr->num_other_sids);
5273 -                                                              
5274 +                       if (usr->num_other_sids) {
5275 +                               usr->other_sids = PRS_ALLOC_MEM(ps, DOM_SID2, usr->num_other_sids);
5276 +                               usr->other_sids_attrib =
5277 +                                       PRS_ALLOC_MEM(ps, uint32, usr->num_other_sids);
5278 +                       } else {
5279 +                               usr->other_sids = NULL;
5280 +                               usr->other_sids_attrib = NULL;
5281 +                       }
5282 +
5283                         if ((num_other_sids != 0) &&
5284                             ((usr->other_sids == NULL) ||
5285                              (usr->other_sids_attrib == NULL)))
5286 diff -urN samba-3.0.24.orig/source/rpc_parse/parse_prs.c samba-3.0.24/source/rpc_parse/parse_prs.c
5287 --- samba-3.0.24.orig/source/rpc_parse/parse_prs.c      2007-02-04 19:59:22.000000000 +0100
5288 +++ samba-3.0.24/source/rpc_parse/parse_prs.c   2007-08-07 09:38:18.000000000 +0200
5289 @@ -156,7 +156,7 @@
5290  {
5291         char *ret = NULL;
5292  
5293 -       if (size) {
5294 +       if (size && count) {
5295                 /* We can't call the type-safe version here. */
5296                 ret = _talloc_zero_array(ps->mem_ctx, size, count, "parse_prs");
5297         }
5298 @@ -642,9 +642,13 @@
5299                 return True;
5300  
5301         if (UNMARSHALLING(ps)) {
5302 -               if ( !(*data = PRS_ALLOC_MEM_VOID(ps, data_size)) )
5303 -                       return False;
5304 -       }
5305 +               if (data_size) {
5306 +                       if ( !(*data = (void *)PRS_ALLOC_MEM(ps, char, data_size)) )
5307 +                               return False;
5308 +               } else {
5309 +                       *data = NULL;
5310 +               }
5311 +       }       
5312  
5313         return prs_fn(name, ps, depth, *data);
5314  }
5315 @@ -789,8 +793,13 @@
5316                         SIVAL(q,0,NT_STATUS_V(*status));
5317         }
5318  
5319 -       DEBUG(5,("%s%04x %s: %s\n", tab_depth(depth), ps->data_offset, name, 
5320 -                dcerpc_errstr(NT_STATUS_V(*status))));
5321 +       DEBUG(5,("%s%04x %s: %s\n", tab_depth(depth), ps->data_offset, name,
5322 +#if 1 /* AVM */
5323 +                               "ERRSTR-REPLACEMENT"
5324 +#else
5325 +                dcerpc_errstr(NT_STATUS_V(*status))
5326 +#endif
5327 +                ));
5328  
5329         ps->data_offset += sizeof(uint32);
5330  
5331 @@ -1014,16 +1023,16 @@
5332         if (q == NULL)
5333                 return False;
5334  
5335 +       /* If the string is empty, we don't have anything to stream */
5336 +       if (str->buf_len==0)
5337 +               return True;
5338 +
5339         if (UNMARSHALLING(ps)) {
5340                 str->buffer = PRS_ALLOC_MEM(ps,uint16,str->buf_len);
5341                 if (str->buffer == NULL)
5342                         return False;
5343         }
5344  
5345 -       /* If the string is empty, we don't have anything to stream */
5346 -       if (str->buf_len==0)
5347 -               return True;
5348 -
5349         p = (char *)str->buffer;
5350  
5351         dbg_rw_punival(charmode, name, depth, ps, q, p, str->buf_len);
5352 @@ -1053,6 +1062,8 @@
5353                         buf->buffer = PRS_ALLOC_MEM(ps, uint16, buf->buf_max_len);
5354                         if ( buf->buffer == NULL )
5355                                 return False;
5356 +               } else {
5357 +                       buf->buffer = NULL;
5358                 }
5359         }
5360  
5361 @@ -1080,9 +1091,13 @@
5362                 if (str->str_str_len > str->str_max_len) {
5363                         return False;
5364                 }
5365 -               str->buffer = PRS_ALLOC_MEM(ps,unsigned char, str->str_max_len);
5366 -               if (str->buffer == NULL)
5367 -                       return False;
5368 +               if (str->str_max_len) {
5369 +                       str->buffer = PRS_ALLOC_MEM(ps,unsigned char, str->str_max_len);
5370 +                       if (str->buffer == NULL)
5371 +                               return False;
5372 +               } else {
5373 +                       str->buffer = NULL;
5374 +               }
5375         }
5376  
5377         if (UNMARSHALLING(ps)) {
5378 @@ -1127,9 +1142,13 @@
5379                 if (str->uni_str_len > str->uni_max_len) {
5380                         return False;
5381                 }
5382 -               str->buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_max_len);
5383 -               if (str->buffer == NULL)
5384 -                       return False;
5385 +               if (str->uni_max_len) {
5386 +                       str->buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_max_len);
5387 +                       if (str->buffer == NULL)
5388 +                               return False;
5389 +               } else {
5390 +                       str->buffer = NULL;
5391 +               }
5392         }
5393  
5394         p = (char *)str->buffer;
5395 @@ -1154,9 +1173,13 @@
5396                 return False;
5397  
5398         if (UNMARSHALLING(ps)) {
5399 -               str->str.buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_str_len);
5400 -               if (str->str.buffer == NULL)
5401 -                       return False;
5402 +               if (str->uni_str_len) {
5403 +                       str->str.buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_str_len);
5404 +                       if (str->str.buffer == NULL)
5405 +                               return False;
5406 +               } else {
5407 +                       str->str.buffer = NULL;
5408 +               }
5409         }
5410  
5411         p = (char *)str->str.buffer;
5412 diff -urN samba-3.0.24.orig/source/rpc_parse/parse_samr.c samba-3.0.24/source/rpc_parse/parse_samr.c
5413 --- samba-3.0.24.orig/source/rpc_parse/parse_samr.c     2007-02-04 19:59:22.000000000 +0100
5414 +++ samba-3.0.24/source/rpc_parse/parse_samr.c  2007-08-07 09:38:18.000000000 +0200
5415 @@ -3337,7 +3337,7 @@
5416                 if(!prs_uint32("num_entries3", ps, depth, &r_u->num_entries3))
5417                         return False;
5418  
5419 -               if (UNMARSHALLING(ps)) {
5420 +               if (UNMARSHALLING(ps) && r_u->num_entries2) {
5421                         r_u->sam = PRS_ALLOC_MEM(ps,SAM_ENTRY,r_u->num_entries2);
5422                         r_u->uni_dom_name = PRS_ALLOC_MEM(ps,UNISTR2,r_u->num_entries2);
5423                 }
5424 @@ -3476,7 +3476,7 @@
5425                 if(!prs_uint32("num_entries3", ps, depth, &r_u->num_entries3))
5426                         return False;
5427  
5428 -               if (UNMARSHALLING(ps)) {
5429 +               if (UNMARSHALLING(ps) && r_u->num_entries2) {
5430                         r_u->sam = PRS_ALLOC_MEM(ps,SAM_ENTRY,r_u->num_entries2);
5431                         r_u->uni_grp_name = PRS_ALLOC_MEM(ps,UNISTR2,r_u->num_entries2);
5432                 }
5433 @@ -4980,12 +4980,13 @@
5434                         return False;
5435                 }
5436  
5437 -               if (UNMARSHALLING(ps))
5438 +               if (UNMARSHALLING(ps) && r_u->num_rids2) {
5439                         r_u->rids = PRS_ALLOC_MEM(ps, uint32, r_u->num_rids2);
5440  
5441 -               if (!r_u->rids) {
5442 -                       DEBUG(0, ("NULL rids in samr_io_r_lookup_names\n"));
5443 -                       return False;
5444 +                       if (!r_u->rids) {
5445 +                               DEBUG(0, ("NULL rids in samr_io_r_lookup_names\n"));
5446 +                               return False;
5447 +                       }
5448                 }
5449  
5450                 for (i = 0; i < r_u->num_rids2; i++) {
5451 @@ -5009,12 +5010,13 @@
5452                         return False;
5453                 }
5454  
5455 -               if (UNMARSHALLING(ps))
5456 +               if (UNMARSHALLING(ps) && r_u->num_types2) {
5457                         r_u->types = PRS_ALLOC_MEM(ps, uint32, r_u->num_types2);
5458  
5459 -               if (!r_u->types) {
5460 -                       DEBUG(0, ("NULL types in samr_io_r_lookup_names\n"));
5461 -                       return False;
5462 +                       if (!r_u->types) {
5463 +                               DEBUG(0, ("NULL types in samr_io_r_lookup_names\n"));
5464 +                               return False;
5465 +                       }
5466                 }
5467  
5468                 for (i = 0; i < r_u->num_types2; i++) {
5469 diff -urN samba-3.0.24.orig/source/rpc_parse/parse_sec.c samba-3.0.24/source/rpc_parse/parse_sec.c
5470 --- samba-3.0.24.orig/source/rpc_parse/parse_sec.c      2005-04-18 18:38:20.000000000 +0200
5471 +++ samba-3.0.24/source/rpc_parse/parse_sec.c   2007-08-07 09:38:18.000000000 +0200
5472 @@ -122,7 +122,7 @@
5473   for you as it reads them.
5474  ********************************************************************/
5475  
5476 -BOOL sec_io_acl(const char *desc, SEC_ACL **ppsa, prs_struct *ps, int depth)
5477 +static BOOL sec_io_acl(const char *desc, SEC_ACL **ppsa, prs_struct *ps, int depth)
5478  {
5479         unsigned int i;
5480         uint32 old_offset;
5481 @@ -165,13 +165,10 @@
5482                 return False;
5483  
5484         if (UNMARSHALLING(ps)) {
5485 -               /*
5486 -                * Even if the num_aces is zero, allocate memory as there's a difference
5487 -                * between a non-present DACL (allow all access) and a DACL with no ACE's
5488 -                * (allow no access).
5489 -                */
5490 -               if((psa->ace = PRS_ALLOC_MEM(ps, SEC_ACE, psa->num_aces+1)) == NULL)
5491 -                       return False;
5492 +               if (psa->num_aces) {
5493 +                       if((psa->ace = PRS_ALLOC_MEM(ps, SEC_ACE, psa->num_aces)) == NULL)
5494 +                               return False;
5495 +               }
5496         }
5497  
5498         for (i = 0; i < psa->num_aces; i++) {
5499 diff -urN samba-3.0.24.orig/source/rpc_parse/parse_spoolss.c samba-3.0.24/source/rpc_parse/parse_spoolss.c
5500 --- samba-3.0.24.orig/source/rpc_parse/parse_spoolss.c  2007-02-04 19:59:22.000000000 +0100
5501 +++ samba-3.0.24/source/rpc_parse/parse_spoolss.c       2007-08-07 09:38:18.000000000 +0200
5502 @@ -227,8 +227,13 @@
5503         if(!prs_uint32("count2", ps, depth, &type->count2))
5504                 return False;
5505         
5506 -       if (type->count2 != type->count)
5507 +       if (type->count2 != type->count) {
5508                 DEBUG(4,("What a mess, count was %x now is %x !\n", type->count, type->count2));
5509 +               return False;
5510 +       }
5511 +       if (type->count2 > MAX_NOTIFY_TYPE_FOR_NOW) {
5512 +               return False;
5513 +       }
5514  
5515         /* parse the option type data */
5516         for(i=0;i<type->count2;i++)
5517 @@ -252,7 +257,7 @@
5518                 return False;
5519  
5520         /* reading */
5521 -       if (UNMARSHALLING(ps))
5522 +       if (UNMARSHALLING(ps) && ctr->count)
5523                 if((ctr->type=PRS_ALLOC_MEM(ps,SPOOL_NOTIFY_OPTION_TYPE,ctr->count)) == NULL)
5524                         return False;
5525                 
5526 @@ -411,7 +416,7 @@
5527                 if(!prs_uint32("string length", ps, depth, &data->notify_data.data.length))
5528                         return False;
5529  
5530 -               if (UNMARSHALLING(ps)) {
5531 +               if (UNMARSHALLING(ps) && data->notify_data.data.length) {
5532                         data->notify_data.data.string = PRS_ALLOC_MEM(ps, uint16,
5533                                                                 data->notify_data.data.length);
5534  
5535 @@ -430,7 +435,7 @@
5536  
5537         case NOTIFY_POINTER:
5538  
5539 -               if (UNMARSHALLING(ps)) {
5540 +               if (UNMARSHALLING(ps) && data->notify_data.data.length) {
5541                         data->notify_data.data.string = PRS_ALLOC_MEM(ps, uint16,
5542                                                                 data->notify_data.data.length);
5543  
5544 @@ -490,9 +495,13 @@
5545  
5546                         /* Tallocate memory for string */
5547  
5548 -                       data->notify_data.data.string = PRS_ALLOC_MEM(ps, uint16, x * 2);
5549 -                       if (!data->notify_data.data.string) 
5550 -                               return False;
5551 +                       if (x) {
5552 +                               data->notify_data.data.string = PRS_ALLOC_MEM(ps, uint16, x * 2);
5553 +                               if (!data->notify_data.data.string) 
5554 +                                       return False;
5555 +                       } else {
5556 +                               data->notify_data.data.string = NULL;
5557 +                       }
5558  
5559                         if(!prs_uint16uni(True,"string",ps,depth,data->notify_data.data.string,x))
5560                                 return False;
5561 @@ -3893,7 +3902,16 @@
5562                 }
5563                 case 3:
5564                 {
5565 -                       ptr_sec_desc = q_u->info.info_3->secdesc_ptr;
5566 +                       /* FIXME ! Our parsing here is wrong I think,
5567 +                        * but for a level3 it makes no sense for
5568 +                        * ptr_sec_desc to be NULL. JRA. Based on
5569 +                        * a Vista sniff from Martin Zielinski <mz@seh.de>.
5570 +                        */
5571 +                       if (UNMARSHALLING(ps)) {
5572 +                               ptr_sec_desc = 1;
5573 +                       } else {
5574 +                               ptr_sec_desc = q_u->info.info_3->secdesc_ptr;
5575 +                       }
5576                         break;
5577                 }
5578         }
5579 @@ -5931,14 +5949,14 @@
5580                 case REG_BINARY:
5581                 case REG_DWORD:
5582                 case REG_MULTI_SZ:
5583 -            if (q_u->max_len) {
5584 -                if (UNMARSHALLING(ps))
5585 -                               q_u->data=PRS_ALLOC_MEM(ps, uint8, q_u->max_len);
5586 -                       if(q_u->data == NULL)
5587 -                               return False;
5588 -                       if(!prs_uint8s(False,"data", ps, depth, q_u->data, q_u->max_len))
5589 -                               return False;
5590 -            }
5591 +                       if (q_u->max_len) {
5592 +                               if (UNMARSHALLING(ps))
5593 +                                       q_u->data=PRS_ALLOC_MEM(ps, uint8, q_u->max_len);
5594 +                               if(q_u->data == NULL)
5595 +                                       return False;
5596 +                               if(!prs_uint8s(False,"data", ps, depth, q_u->data, q_u->max_len))
5597 +                                       return False;
5598 +                       }
5599                         if(!prs_align(ps))
5600                                 return False;
5601                         break;
5602 @@ -6956,7 +6974,7 @@
5603         
5604         /* first loop to write basic enum_value information */
5605         
5606 -       if (UNMARSHALLING(ps)) {
5607 +       if (UNMARSHALLING(ps) && ctr->size_of_array) {
5608                 ctr->values = PRS_ALLOC_MEM(ps, PRINTER_ENUM_VALUES, ctr->size_of_array);
5609                 if (!ctr->values)
5610                         return False;
5611 diff -urN samba-3.0.24.orig/source/rpc_parse/parse_srv.c samba-3.0.24/source/rpc_parse/parse_srv.c
5612 --- samba-3.0.24.orig/source/rpc_parse/parse_srv.c      2005-04-18 18:38:20.000000000 +0200
5613 +++ samba-3.0.24/source/rpc_parse/parse_srv.c   2007-08-07 09:38:18.000000000 +0200
5614 @@ -782,7 +782,7 @@
5615                 int num_entries = ctr->num_entries;
5616                 int i;
5617  
5618 -               if (UNMARSHALLING(ps)) {
5619 +               if (UNMARSHALLING(ps) && num_entries) {
5620                         if (!(info0 = PRS_ALLOC_MEM(ps, SRV_SHARE_INFO_0, num_entries)))
5621                                 return False;
5622                         ctr->share.info0 = info0;
5623 @@ -808,7 +808,7 @@
5624                 int num_entries = ctr->num_entries;
5625                 int i;
5626  
5627 -               if (UNMARSHALLING(ps)) {
5628 +               if (UNMARSHALLING(ps) && num_entries) {
5629                         if (!(info1 = PRS_ALLOC_MEM(ps, SRV_SHARE_INFO_1, num_entries)))
5630                                 return False;
5631                         ctr->share.info1 = info1;
5632 @@ -834,7 +834,7 @@
5633                 int num_entries = ctr->num_entries;
5634                 int i;
5635  
5636 -               if (UNMARSHALLING(ps)) {
5637 +               if (UNMARSHALLING(ps) && num_entries) {
5638                         if (!(info2 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_2,num_entries)))
5639                                 return False;
5640                         ctr->share.info2 = info2;
5641 @@ -859,7 +859,7 @@
5642                 int num_entries = ctr->num_entries;
5643                 int i;
5644  
5645 -               if (UNMARSHALLING(ps)) {
5646 +               if (UNMARSHALLING(ps) && num_entries) {
5647                         if (!(info501 = PRS_ALLOC_MEM(ps, SRV_SHARE_INFO_501, num_entries)))
5648                                 return False;
5649                         ctr->share.info501 = info501;
5650 @@ -884,7 +884,7 @@
5651                 int num_entries = ctr->num_entries;
5652                 int i;
5653  
5654 -               if (UNMARSHALLING(ps)) {
5655 +               if (UNMARSHALLING(ps) && num_entries) {
5656                         if (!(info502 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_502,num_entries)))
5657                                 return False;
5658                         ctr->share.info502 = info502;
5659 @@ -910,7 +910,7 @@
5660                 int num_entries = ctr->num_entries;
5661                 int i;
5662  
5663 -               if (UNMARSHALLING(ps)) {
5664 +               if (UNMARSHALLING(ps) && num_entries) {
5665                         if (!(info1004 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_1004,num_entries)))
5666                                 return False;
5667                         ctr->share.info1004 = info1004;
5668 @@ -936,7 +936,7 @@
5669                 int num_entries = ctr->num_entries;
5670                 int i;
5671  
5672 -               if (UNMARSHALLING(ps)) {
5673 +               if (UNMARSHALLING(ps) && num_entries) {
5674                         if (!(info1005 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_1005,num_entries)))
5675                                 return False;
5676                         ctr->share.info1005 = info1005;
5677 @@ -956,7 +956,7 @@
5678                 int num_entries = ctr->num_entries;
5679                 int i;
5680  
5681 -               if (UNMARSHALLING(ps)) {
5682 +               if (UNMARSHALLING(ps) && num_entries) {
5683                         if (!(info1006 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_1006,num_entries)))
5684                                 return False;
5685                         ctr->share.info1006 = info1006;
5686 @@ -976,7 +976,7 @@
5687                 int num_entries = ctr->num_entries;
5688                 int i;
5689  
5690 -               if (UNMARSHALLING(ps)) {
5691 +               if (UNMARSHALLING(ps) && num_entries) {
5692                         if (!(info1007 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_1007,num_entries)))
5693                                 return False;
5694                         ctr->share.info1007 = info1007;
5695 @@ -1002,7 +1002,7 @@
5696                 int num_entries = ctr->num_entries;
5697                 int i;
5698  
5699 -               if (UNMARSHALLING(ps)) {
5700 +               if (UNMARSHALLING(ps) && num_entries) {
5701                         if (!(info1501 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_1501,num_entries)))
5702                                 return False;
5703                         ctr->share.info1501 = info1501;
5704 @@ -2558,7 +2558,7 @@
5705                 int num_entries = ctr->num_entries;
5706                 int i;
5707  
5708 -               if (UNMARSHALLING(ps)) {
5709 +               if (UNMARSHALLING(ps) && num_entries) {
5710                         if (!(info3 = PRS_ALLOC_MEM(ps, SRV_FILE_INFO_3, num_entries)))
5711                                 return False;
5712                         ctr->file.info3 = info3;
5713 @@ -3377,7 +3377,7 @@
5714  
5715         r_n->disk_enum_ctr.entries_read = entries_read3;
5716  
5717 -       if(UNMARSHALLING(ps)) {
5718 +       if(UNMARSHALLING(ps) && entries_read3) {
5719  
5720                 DISK_INFO *dinfo;
5721  
5722 @@ -3386,7 +3386,7 @@
5723                 r_n->disk_enum_ctr.disk_info = dinfo;
5724         }
5725  
5726 -       for(i=0; i < r_n->disk_enum_ctr.entries_read; i++) {
5727 +       for(i=0; i < entries_read3; i++) {
5728  
5729                 if(!prs_uint32("unknown", ps, depth, &r_n->disk_enum_ctr.disk_info[i].unknown))
5730                         return False;
5731 diff -urN samba-3.0.24.orig/source/rpc_server/srv_pipe.c samba-3.0.24/source/rpc_server/srv_pipe.c
5732 --- samba-3.0.24.orig/source/rpc_server/srv_pipe.c      2007-02-04 19:59:21.000000000 +0100
5733 +++ samba-3.0.24/source/rpc_server/srv_pipe.c   2007-07-17 13:19:05.000000000 +0200
5734 @@ -2331,6 +2331,7 @@
5735         int               n_cmds = 0;
5736  
5737         switch ( idx ) {
5738 +#ifndef AVM_SMALLER
5739                 case PI_LSARPC:
5740                         lsa_get_pipe_fns( &cmds, &n_cmds );
5741                         break;
5742 @@ -2343,12 +2344,14 @@
5743                 case PI_NETLOGON:
5744                         netlog_get_pipe_fns( &cmds, &n_cmds );
5745                         break;
5746 +#endif /* AVM_SMALLER */
5747                 case PI_SRVSVC:
5748                         srvsvc_get_pipe_fns( &cmds, &n_cmds );
5749                         break;
5750                 case PI_WKSSVC:
5751                         wkssvc_get_pipe_fns( &cmds, &n_cmds );
5752                         break;
5753 +#ifndef AVM_SMALLER
5754                 case PI_WINREG:
5755                         reg_get_pipe_fns( &cmds, &n_cmds );
5756                         break;
5757 @@ -2367,6 +2370,8 @@
5758                 case PI_NTSVCS:
5759                         ntsvcs_get_pipe_fns( &cmds, &n_cmds );
5760                         break;
5761 +#endif /* AVM_SMALLER */
5762 +
5763  #ifdef DEVELOPER
5764                 case PI_ECHO:
5765                         echo_get_pipe_fns( &cmds, &n_cmds );
5766 diff -urN samba-3.0.24.orig/source/rpc_server/srv_spoolss.c samba-3.0.24/source/rpc_server/srv_spoolss.c
5767 --- samba-3.0.24.orig/source/rpc_server/srv_spoolss.c   2006-04-20 04:29:27.000000000 +0200
5768 +++ samba-3.0.24/source/rpc_server/srv_spoolss.c        2007-08-07 09:38:18.000000000 +0200
5769 @@ -1477,6 +1477,15 @@
5770         ZERO_STRUCT(r_u);
5771         
5772         if(!spoolss_io_q_addprinterdriverex("", &q_u, data, 0)) {
5773 +               if (q_u.level != 3 && q_u.level != 6) {
5774 +                       /* Clever hack from Martin Zielinski <mz@seh.de>
5775 +                        * to allow downgrade from level 8 (Vista).
5776 +                        */
5777 +                       DEBUG(3,("api_spoolss_addprinterdriverex: unknown SPOOL_Q_ADDPRINTERDRIVEREX level %u.\n",
5778 +                               (unsigned int)q_u.level ));
5779 +                       setup_fault_pdu(p, NT_STATUS(DCERPC_FAULT_INVALID_TAG));
5780 +                       return True;
5781 +               }
5782                 DEBUG(0,("spoolss_io_q_addprinterdriverex: unable to unmarshall SPOOL_Q_ADDPRINTERDRIVEREX.\n"));
5783                 return False;
5784         }
5785 diff -urN samba-3.0.24.orig/source/rpc_server/srv_spoolss_nt.c samba-3.0.24/source/rpc_server/srv_spoolss_nt.c
5786 --- samba-3.0.24.orig/source/rpc_server/srv_spoolss_nt.c        2007-02-04 19:59:21.000000000 +0100
5787 +++ samba-3.0.24/source/rpc_server/srv_spoolss_nt.c     2007-08-07 09:38:18.000000000 +0200
5788 @@ -5848,6 +5848,12 @@
5789                 goto done;
5790         }
5791         
5792 +       if (!secdesc_ctr) {
5793 +               DEBUG(10,("update_printer_sec: secdesc_ctr is NULL !\n"));
5794 +               result = WERR_INVALID_PARAM;
5795 +               goto done;
5796 +       }
5797 +
5798         /* Check the user has permissions to change the security
5799            descriptor.  By experimentation with two NT machines, the user
5800            requires Full Access to the printer to change security
5801 @@ -9378,6 +9384,15 @@
5802         
5803         /* housekeeping information in the reply */
5804         
5805 +       /* Fix from Martin Zielinski <mz@seh.de> - ensure
5806 +        * the hand marshalled container size is a multiple
5807 +        * of 4 bytes for RPC alignment.
5808 +        */
5809 +
5810 +       if (needed % 4) {
5811 +               needed += 4-(needed % 4);
5812 +       }
5813 +
5814         r_u->needed     = needed;
5815         r_u->returned   = num_entries;
5816  
5817 diff -urN samba-3.0.24.orig/source/smbd/change_trust_pw.c samba-3.0.24/source/smbd/change_trust_pw.c
5818 --- samba-3.0.24.orig/source/smbd/change_trust_pw.c     2005-10-18 04:44:56.000000000 +0200
5819 +++ samba-3.0.24/source/smbd/change_trust_pw.c  2007-07-17 13:19:05.000000000 +0200
5820 @@ -30,6 +30,10 @@
5821  
5822  NTSTATUS change_trust_account_password( const char *domain, const char *remote_machine)
5823  {
5824 +#ifdef AVM_SMALLER
5825 +       return NT_STATUS_UNSUCCESSFUL;
5826 +#else
5827 +
5828         NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
5829         struct in_addr pdc_ip;
5830         fstring dc_name;
5831 @@ -95,4 +99,5 @@
5832                 DEBUG(5,("change_trust_account_password: sucess!\n"));
5833    
5834         return nt_status;
5835 +#endif /* AVM_SMALLER */
5836  }
5837 diff -urN samba-3.0.24.orig/source/smbd/close.c samba-3.0.24/source/smbd/close.c
5838 --- samba-3.0.24.orig/source/smbd/close.c       2007-02-04 19:59:13.000000000 +0100
5839 +++ samba-3.0.24/source/smbd/close.c    2007-07-17 13:19:05.000000000 +0200
5840 @@ -295,7 +295,9 @@
5841         }
5842  
5843         if (fsp->print_file) {
5844 +#ifndef AVM_NO_PRINTING
5845                 print_fsp_end(fsp, close_type);
5846 +#endif
5847                 file_free(fsp);
5848                 return 0;
5849         }
5850 diff -urN samba-3.0.24.orig/source/smbd/conn.c samba-3.0.24/source/smbd/conn.c
5851 --- samba-3.0.24.orig/source/smbd/conn.c        2007-02-04 19:59:13.000000000 +0100
5852 +++ samba-3.0.24/source/smbd/conn.c     2007-07-17 13:19:05.000000000 +0200
5853 @@ -205,10 +205,13 @@
5854          * idle with a handle open.
5855          */
5856  
5857 +
5858 +#ifndef AVM_SMALLER
5859         for (plist = get_first_internal_pipe(); plist; plist = get_next_internal_pipe(plist))
5860                 if (plist->pipe_handles && plist->pipe_handles->count)
5861                         allidle = False;
5862 -       
5863 +#endif 
5864 +
5865         return allidle;
5866  }
5867  
5868 diff -urN samba-3.0.24.orig/source/smbd/dfree.c samba-3.0.24/source/smbd/dfree.c
5869 --- samba-3.0.24.orig/source/smbd/dfree.c       2005-11-09 19:28:55.000000000 +0100
5870 +++ samba-3.0.24/source/smbd/dfree.c    2007-07-17 13:19:05.000000000 +0200
5871 @@ -130,11 +130,13 @@
5872                 }
5873         }
5874  
5875 +#if 0 /* AR7 */
5876         if (disk_quotas(path, &bsize_q, &dfree_q, &dsize_q)) {
5877                 (*bsize) = bsize_q;
5878                 (*dfree) = MIN(*dfree,dfree_q);
5879                 (*dsize) = MIN(*dsize,dsize_q);
5880         }
5881 +#endif
5882  
5883         /* FIXME : Any reason for this assumption ? */
5884         if (*bsize < 256) {
5885 diff -urN samba-3.0.24.orig/source/smbd/dir.c samba-3.0.24/source/smbd/dir.c
5886 --- samba-3.0.24.orig/source/smbd/dir.c 2007-02-04 19:59:13.000000000 +0100
5887 +++ samba-3.0.24/source/smbd/dir.c      2007-08-07 09:38:18.000000000 +0200
5888 @@ -1255,3 +1255,42 @@
5889         }
5890         return False;
5891  }
5892 +
5893 +/*****************************************************************
5894 + Is this directory empty ?
5895 +*****************************************************************/
5896 +
5897 +NTSTATUS can_delete_directory(struct connection_struct *conn,
5898 +                               const char *dirname)
5899 +{
5900 +       NTSTATUS status = NT_STATUS_OK;
5901 +       long dirpos = 0;
5902 +       const char *dname;
5903 +       struct smb_Dir *dir_hnd = OpenDir(conn, dirname, NULL, 0);
5904 +
5905 +       if (!dir_hnd) {
5906 +               return map_nt_error_from_unix(errno);
5907 +       }
5908 +
5909 +       while ((dname = ReadDirName(dir_hnd,&dirpos))) {
5910 +               SMB_STRUCT_STAT st;
5911 +
5912 +               /* Quick check for "." and ".." */
5913 +               if (dname[0] == '.') {
5914 +                       if (!dname[1] || (dname[1] == '.' && !dname[2])) {
5915 +                               continue;
5916 +                       }
5917 +               }
5918 +
5919 +               if (!is_visible_file(conn, dirname, dname, &st, True)) {
5920 +                       continue;
5921 +               }
5922 +
5923 +               DEBUG(10,("can_delete_directory: got name %s - can't delete\n", dname ));
5924 +               status = NT_STATUS_DIRECTORY_NOT_EMPTY;
5925 +               break;
5926 +       }
5927 +       CloseDir(dir_hnd);
5928 +
5929 +       return status;
5930 +}
5931 diff -urN samba-3.0.24.orig/source/smbd/dosmode.c samba-3.0.24/source/smbd/dosmode.c
5932 --- samba-3.0.24.orig/source/smbd/dosmode.c     2007-02-04 19:59:13.000000000 +0100
5933 +++ samba-3.0.24/source/smbd/dosmode.c  2007-07-17 13:19:05.000000000 +0200
5934 @@ -48,12 +48,15 @@
5935         if (ISDOT(path) || ISDOTDOT(path)) {
5936                 return 0;
5937         }
5938 -
5939 +#ifdef AVM_SMALLER
5940 +       return 0;
5941 +#else
5942         if (!lp_dmapi_support(SNUM(conn)) || !dmapi_have_session()) {
5943                 return 0;
5944         }
5945  
5946         return dmapi_file_flags(path);
5947 +#endif
5948  }
5949  
5950  /****************************************************************************
5951 diff -urN samba-3.0.24.orig/source/smbd/fileio.c samba-3.0.24/source/smbd/fileio.c
5952 --- samba-3.0.24.orig/source/smbd/fileio.c      2005-10-18 04:44:57.000000000 +0200
5953 +++ samba-3.0.24/source/smbd/fileio.c   2007-08-07 09:38:18.000000000 +0200
5954 @@ -176,6 +176,8 @@
5955  
5956  static int wcp_file_size_change(files_struct *fsp)
5957  {
5958 +/* AVM: Fuer Pruefung des freien Speichers auf dem Datentraeger wird 
5959 +   SMB_VFS_FTRUNCATE aufgerufen, auch falls es langsam sein sollte */
5960         int ret;
5961         write_cache *wcp = fsp->wcp;
5962  
5963 @@ -199,6 +201,10 @@
5964         int write_path = -1; 
5965  
5966         if (fsp->print_file) {
5967 +#ifdef AVM_NO_PRINTING
5968 +                       errno = EBADF;
5969 +                       return -1;
5970 +#else
5971                 fstring sharename;
5972                 uint32 jobid;
5973  
5974 @@ -210,6 +216,7 @@
5975                 }
5976  
5977                 return print_job_write(SNUM(fsp->conn), jobid, data, pos, n);
5978 +#endif /* AVM_NO_PRINTING */
5979         }
5980  
5981         if (!fsp->can_write) {
5982 diff -urN samba-3.0.24.orig/source/smbd/files.c samba-3.0.24/source/smbd/files.c
5983 --- samba-3.0.24.orig/source/smbd/files.c       2007-02-04 19:59:13.000000000 +0100
5984 +++ samba-3.0.24/source/smbd/files.c    2007-07-17 13:19:05.000000000 +0200
5985 @@ -203,10 +203,12 @@
5986                 exit_server("out of memory in file_init");
5987         }
5988         
5989 +#ifndef AVM_SMALLER
5990         /*
5991          * Ensure that pipe_handle_oppset is set correctly.
5992          */
5993         set_pipe_handle_offset(real_max_open_files);
5994 +#endif
5995  }
5996  
5997  /****************************************************************************
5998 diff -urN samba-3.0.24.orig/source/smbd/lanman.c samba-3.0.24/source/smbd/lanman.c
5999 --- samba-3.0.24.orig/source/smbd/lanman.c      2007-02-04 19:59:13.000000000 +0100
6000 +++ samba-3.0.24/source/smbd/lanman.c   2007-07-17 13:19:05.000000000 +0200
6001 @@ -378,6 +378,7 @@
6002         PACK(desc,t,v);
6003  }
6004  
6005 +#ifndef AVM_NO_PRINTING
6006  /****************************************************************************
6007   Get a print queue.
6008  ****************************************************************************/
6009 @@ -753,6 +754,7 @@
6010                 
6011         return result;
6012  }
6013 +#endif /* AVM_NO_PRINTING */
6014  
6015  static BOOL api_DosPrintQGetInfo(connection_struct *conn,
6016                                  uint16 vuid, char *param,char *data,
6017 @@ -760,6 +762,9 @@
6018                                  char **rdata,char **rparam,
6019                                  int *rdata_len,int *rparam_len)
6020  {
6021 +#ifdef AVM_NO_PRINTING
6022 +return False;
6023 +#else
6024         char *str1 = param+2;
6025         char *str2 = skip_string(str1,1);
6026         char *p = skip_string(str2,1);
6027 @@ -865,6 +870,7 @@
6028         SAFE_FREE(tmpdata);
6029  
6030         return(True);
6031 +#endif /* AVM_NO_PRINTING */
6032  }
6033  
6034  /****************************************************************************
6035 @@ -876,6 +882,9 @@
6036                               char **rdata, char** rparam,
6037                               int *rdata_len, int *rparam_len)
6038  {
6039 +#ifdef AVM_NO_PRINTING
6040 +return False;
6041 +#else
6042         char *param_format = param+2;
6043         char *output_format1 = skip_string(param_format,1);
6044         char *p = skip_string(output_format1,1);
6045 @@ -1004,6 +1013,7 @@
6046         SAFE_FREE(status);
6047  
6048         return False;
6049 +#endif /* AVM_NO_PRINTING */
6050  }
6051  
6052  /****************************************************************************
6053 @@ -2378,6 +2388,9 @@
6054                                 char **rdata,char **rparam,
6055                                 int *rdata_len,int *rparam_len)
6056  {
6057 +#ifdef AVM_NO_PRINTING
6058 +return False;
6059 +#else
6060         int function = SVAL(param,0);
6061         char *str1 = param+2;
6062         char *str2 = skip_string(str1,1);
6063 @@ -2438,6 +2451,7 @@
6064         SSVAL(*rparam,2,0);             /* converter word */
6065  
6066         return(True);
6067 +#endif
6068  }
6069  
6070  /****************************************************************************
6071 @@ -2449,6 +2463,9 @@
6072                                  char **rdata,char **rparam,
6073                                  int *rdata_len,int *rparam_len)
6074  {
6075 +#ifdef AVM_NO_PRINTING
6076 +return False;
6077 +#else
6078         int function = SVAL(param,0);
6079         char *str1 = param+2;
6080         char *str2 = skip_string(str1,1);
6081 @@ -2494,6 +2511,7 @@
6082         SSVAL(*rparam,2,0);             /* converter word */
6083  
6084         return(True);
6085 +#endif
6086  }
6087  
6088  /****************************************************************************
6089 @@ -2525,6 +2543,9 @@
6090                              char **rdata,char **rparam,
6091                              int *rdata_len,int *rparam_len)
6092  {
6093 +#ifdef AVM_NO_PRINTING
6094 +return False;
6095 +#else
6096         struct pack_desc desc;
6097         char *str1 = param+2;
6098         char *str2 = skip_string(str1,1);
6099 @@ -2590,6 +2611,7 @@
6100         SSVAL(*rparam,2,0);             /* converter word */
6101         
6102         return(True);
6103 +#endif
6104  }
6105  
6106  
6107 @@ -3272,6 +3294,9 @@
6108                                  char **rdata,char **rparam,
6109                                  int *rdata_len,int *rparam_len)
6110  {
6111 +#ifdef AVM_NO_PRINTING
6112 +return False;
6113 +#else
6114         char *str1 = param+2;
6115         char *str2 = skip_string(str1,1);
6116         char *p = skip_string(str2,1);
6117 @@ -3358,6 +3383,7 @@
6118         DEBUG(4,("WPrintJobGetInfo: errorcode %d\n",desc.errcode));
6119  
6120         return True;
6121 +#endif
6122  }
6123  
6124  static BOOL api_WPrintJobEnumerate(connection_struct *conn,uint16 vuid, char *param,char *data,
6125 @@ -3365,6 +3391,9 @@
6126                                    char **rdata,char **rparam,
6127                                    int *rdata_len,int *rparam_len)
6128  {
6129 +#ifdef AVM_NO_PRINTING
6130 +return False;
6131 +#else
6132         char *str1 = param+2;
6133         char *str2 = skip_string(str1,1);
6134         char *p = skip_string(str2,1);
6135 @@ -3440,6 +3469,7 @@
6136         DEBUG(4,("WPrintJobEnumerate: errorcode %d\n",desc.errcode));
6137  
6138         return True;
6139 +#endif
6140  }
6141  
6142  static int check_printdest_info(struct pack_desc* desc,
6143 @@ -3509,6 +3539,9 @@
6144                                   char **rdata,char **rparam,
6145                                   int *rdata_len,int *rparam_len)
6146  {
6147 +#ifdef AVM_NO_PRINTING
6148 +return False;
6149 +#else
6150         char *str1 = param+2;
6151         char *str2 = skip_string(str1,1);
6152         char *p = skip_string(str2,1);
6153 @@ -3573,6 +3606,7 @@
6154         SAFE_FREE(tmpdata);
6155  
6156         return True;
6157 +#endif
6158  }
6159  
6160  static BOOL api_WPrintDestEnum(connection_struct *conn,uint16 vuid, char *param,char *data,
6161 @@ -3580,6 +3614,9 @@
6162                                char **rdata,char **rparam,
6163                                int *rdata_len,int *rparam_len)
6164  {
6165 +#ifdef AVM_NO_PRINTING
6166 +return False;
6167 +#else
6168         char *str1 = param+2;
6169         char *str2 = skip_string(str1,1);
6170         char *p = skip_string(str2,1);
6171 @@ -3648,6 +3685,7 @@
6172         DEBUG(4,("WPrintDestEnumerate: errorcode %d\n",desc.errcode));
6173  
6174         return True;
6175 +#endif
6176  }
6177  
6178  static BOOL api_WPrintDriverEnum(connection_struct *conn,uint16 vuid, char *param,char *data,
6179 @@ -3655,6 +3693,9 @@
6180                                  char **rdata,char **rparam,
6181                                  int *rdata_len,int *rparam_len)
6182  {
6183 +#ifdef AVM_NO_PRINTING
6184 +return False;
6185 +#else
6186         char *str1 = param+2;
6187         char *str2 = skip_string(str1,1);
6188         char *p = skip_string(str2,1);
6189 @@ -3705,6 +3746,7 @@
6190         DEBUG(4,("WPrintDriverEnum: errorcode %d\n",desc.errcode));
6191  
6192         return True;
6193 +#endif
6194  }
6195  
6196  static BOOL api_WPrintQProcEnum(connection_struct *conn,uint16 vuid, char *param,char *data,
6197 @@ -3712,6 +3754,9 @@
6198                                 char **rdata,char **rparam,
6199                                 int *rdata_len,int *rparam_len)
6200  {
6201 +#ifdef AVM_NO_PRINTING
6202 +return False;
6203 +#else
6204         char *str1 = param+2;
6205         char *str2 = skip_string(str1,1);
6206         char *p = skip_string(str2,1);
6207 @@ -3763,6 +3808,7 @@
6208         DEBUG(4,("WPrintQProcEnum: errorcode %d\n",desc.errcode));
6209  
6210         return True;
6211 +#endif
6212  }
6213  
6214  static BOOL api_WPrintPortEnum(connection_struct *conn,uint16 vuid, char *param,char *data,
6215 @@ -3770,6 +3816,9 @@
6216                                char **rdata,char **rparam,
6217                                int *rdata_len,int *rparam_len)
6218  {
6219 +#ifdef AVM_NO_PRINTING
6220 +return False;
6221 +#else
6222         char *str1 = param+2;
6223         char *str2 = skip_string(str1,1);
6224         char *p = skip_string(str2,1);
6225 @@ -3822,6 +3871,7 @@
6226         DEBUG(4,("WPrintPortEnum: errorcode %d\n",desc.errcode));
6227  
6228         return True;
6229 +#endif
6230  }
6231  
6232  
6233 diff -urN samba-3.0.24.orig/source/smbd/msdfs.c samba-3.0.24/source/smbd/msdfs.c
6234 --- samba-3.0.24.orig/source/smbd/msdfs.c       2007-02-04 19:59:13.000000000 +0100
6235 +++ samba-3.0.24/source/smbd/msdfs.c    2007-08-07 09:38:18.000000000 +0200
6236 @@ -832,9 +832,13 @@
6237  
6238         /* create the referral depeding on version */
6239         DEBUG(10,("max_referral_level :%d\n",max_referral_level));
6240 -       if(max_referral_level<2 || max_referral_level>3) {
6241 +
6242 +       if (max_referral_level < 2) {
6243                 max_referral_level = 2;
6244         }
6245 +       if (max_referral_level > 3) {
6246 +               max_referral_level = 3;
6247 +       }
6248  
6249         switch(max_referral_level) {
6250         case 2:
6251 diff -urN samba-3.0.24.orig/source/smbd/negprot.c samba-3.0.24/source/smbd/negprot.c
6252 --- samba-3.0.24.orig/source/smbd/negprot.c     2007-02-04 19:59:13.000000000 +0100
6253 +++ samba-3.0.24/source/smbd/negprot.c  2007-08-07 09:38:18.000000000 +0200
6254 @@ -263,6 +263,16 @@
6255  
6256         global_encrypted_passwords_negotiated = lp_encrypted_passwords();
6257  
6258 +       /* Check the flags field to see if this is Vista.
6259 +          WinXP sets it and Vista does not. But we have to 
6260 +          distinguish from NT which doesn't set it either. */
6261 +
6262 +       if ( (SVAL(inbuf, smb_flg2) & FLAGS2_EXTENDED_SECURITY) &&
6263 +               ((SVAL(inbuf, smb_flg2) & FLAGS2_UNKNOWN_BIT4) == 0) ) 
6264 +       {
6265 +               set_remote_arch( RA_VISTA );            
6266 +       }
6267 +
6268         /* do spnego in user level security if the client
6269            supports it and we can do encrypted passwords */
6270         
6271 @@ -393,6 +403,15 @@
6272  protocol [LANMAN2.1]
6273  protocol [NT LM 0.12]
6274  
6275 +Vista:
6276 +protocol [PC NETWORK PROGRAM 1.0]
6277 +protocol [LANMAN1.0]
6278 +protocol [Windows for Workgroups 3.1a]
6279 +protocol [LM1.2X002]
6280 +protocol [LANMAN2.1]
6281 +protocol [NT LM 0.12]
6282 +protocol [SMB 2.001]
6283 +
6284  OS/2:
6285  protocol [PC NETWORK PROGRAM 1.0]
6286  protocol [XENIX CORE]
6287 @@ -406,18 +425,19 @@
6288    *
6289    * This appears to be the matrix of which protocol is used by which
6290    * MS product.
6291 -       Protocol                       WfWg    Win95   WinNT  Win2K  OS/2
6292 -       PC NETWORK PROGRAM 1.0          1       1       1      1      1
6293 +       Protocol                       WfWg    Win95   WinNT  Win2K  OS/2 Vista
6294 +       PC NETWORK PROGRAM 1.0          1       1       1      1      1     1
6295         XENIX CORE                                      2             2
6296         MICROSOFT NETWORKS 3.0          2       2       
6297         DOS LM1.2X002                   3       3       
6298         MICROSOFT NETWORKS 1.03                         3
6299         DOS LANMAN2.1                   4       4       
6300 -       LANMAN1.0                                       4      2      3
6301 -       Windows for Workgroups 3.1a     5       5       5      3
6302 -       LM1.2X002                                       6      4      4
6303 -       LANMAN2.1                                       7      5      5
6304 -       NT LM 0.12                              6       8      6
6305 +       LANMAN1.0                                       4      2      3     2
6306 +       Windows for Workgroups 3.1a     5       5       5      3            3
6307 +       LM1.2X002                                       6      4      4     4
6308 +       LANMAN2.1                                       7      5      5     5
6309 +       NT LM 0.12                              6       8      6            6
6310 +       SMB 2.001                                                           7
6311    *
6312    *  tim@fsg.com 09/29/95
6313    *  Win2K added by matty 17/7/99
6314 @@ -430,6 +450,7 @@
6315  #define ARCH_OS2      0x14     /* Again OS/2 is like NT */
6316  #define ARCH_SAMBA    0x20
6317  #define ARCH_CIFSFS   0x40
6318 +#define ARCH_VISTA    0x8C     /* Vista is like XP/2K */
6319   
6320  #define ARCH_ALL      0x7F
6321   
6322 @@ -493,6 +514,8 @@
6323                         arch &= ( ARCH_WFWG | ARCH_WIN95 );
6324                 else if (strcsequal(p,"NT LM 0.12"))
6325                         arch &= ( ARCH_WIN95 | ARCH_WINNT | ARCH_WIN2K | ARCH_CIFSFS);
6326 +               else if (strcsequal(p,"SMB 2.001"))
6327 +                       arch = ARCH_VISTA;              
6328                 else if (strcsequal(p,"LANMAN2.1"))
6329                         arch &= ( ARCH_WINNT | ARCH_WIN2K | ARCH_OS2 );
6330                 else if (strcsequal(p,"LM1.2X002"))
6331 @@ -537,7 +560,13 @@
6332                                 set_remote_arch(RA_WINNT);
6333                         break;
6334                 case ARCH_WIN2K:
6335 -                       set_remote_arch(RA_WIN2K);
6336 +                       /* Vista may have been set in the negprot so don't 
6337 +                          override it here */
6338 +                       if ( get_remote_arch() != RA_VISTA )
6339 +                               set_remote_arch(RA_WIN2K);
6340 +                       break;
6341 +               case ARCH_VISTA:
6342 +                       set_remote_arch(RA_VISTA);
6343                         break;
6344                 case ARCH_OS2:
6345                         set_remote_arch(RA_OS2);
6346 diff -urN samba-3.0.24.orig/source/smbd/open.c samba-3.0.24/source/smbd/open.c
6347 --- samba-3.0.24.orig/source/smbd/open.c        2007-02-04 19:59:13.000000000 +0100
6348 +++ samba-3.0.24/source/smbd/open.c     2007-07-17 13:19:05.000000000 +0200
6349 @@ -1127,8 +1127,11 @@
6350                 }
6351  
6352                 DEBUG(10, ("open_file_ntcreate: printer open fname=%s\n", fname));
6353 -
6354 +#ifdef AVM_NO_PRINTING
6355 +               return NULL;
6356 +#else
6357                 return print_fsp_open(conn, fname);
6358 +#endif
6359         }
6360  
6361         /* We add aARCH to this as this mode is only used if the file is
6362 diff -urN samba-3.0.24.orig/source/smbd/password.c samba-3.0.24/source/smbd/password.c
6363 --- samba-3.0.24.orig/source/smbd/password.c    2007-02-04 19:59:13.000000000 +0100
6364 +++ samba-3.0.24/source/smbd/password.c 2007-07-17 13:19:05.000000000 +0200
6365 @@ -23,6 +23,8 @@
6366  /* users from session setup */
6367  static char *session_userlist = NULL;
6368  static int len_session_userlist = 0;
6369 +/* workgroup from session setup. */
6370 +static char *session_workgroup = NULL;
6371  
6372  /* this holds info on user ids that are already validated for this VC */
6373  static user_struct *validated_users;
6374 @@ -406,6 +408,29 @@
6375  }
6376  
6377  /****************************************************************************
6378 + In security=share mode we need to store the client workgroup, as that's
6379 +  what Vista uses for the NTLMv2 calculation.
6380 +****************************************************************************/
6381 +
6382 +void add_session_workgroup(const char *workgroup)
6383 +{
6384 +       if (session_workgroup) {
6385 +               SAFE_FREE(session_workgroup);
6386 +       }
6387 +       session_workgroup = smb_xstrdup(workgroup);
6388 +}
6389 +
6390 +/****************************************************************************
6391 + In security=share mode we need to return the client workgroup, as that's
6392 +  what Vista uses for the NTLMv2 calculation.
6393 +****************************************************************************/
6394 +
6395 +const char *get_session_workgroup(void)
6396 +{
6397 +       return session_workgroup;
6398 +}
6399 +
6400 +/****************************************************************************
6401   Check if a user is in a netgroup user list. If at first we don't succeed,
6402   try lower case.
6403  ****************************************************************************/
6404 diff -urN samba-3.0.24.orig/source/smbd/posix_acls.c samba-3.0.24/source/smbd/posix_acls.c
6405 --- samba-3.0.24.orig/source/smbd/posix_acls.c  2007-02-04 19:59:13.000000000 +0100
6406 +++ samba-3.0.24/source/smbd/posix_acls.c       2007-08-07 09:38:18.000000000 +0200
6407 @@ -655,6 +655,7 @@
6408         }
6409         return 0;
6410  }
6411 +
6412  /****************************************************************************
6413   Function to create owner and group SIDs from a SMB_STRUCT_STAT.
6414  ****************************************************************************/
6415 @@ -666,6 +667,27 @@
6416  }
6417  
6418  /****************************************************************************
6419 + Is the identity in two ACEs equal ? Check both SID and uid/gid.
6420 +****************************************************************************/
6421 +
6422 +static BOOL identity_in_ace_equal(canon_ace *ace1, canon_ace *ace2)
6423 +{
6424 +       if (sid_equal(&ace1->trustee, &ace2->trustee)) {
6425 +               return True;
6426 +       }
6427 +       if (ace1->owner_type == ace2->owner_type) {
6428 +               if (ace1->owner_type == UID_ACE &&
6429 +                               ace1->unix_ug.uid == ace2->unix_ug.uid) {
6430 +                       return True;
6431 +               } else if (ace1->owner_type == GID_ACE &&
6432 +                               ace1->unix_ug.gid == ace2->unix_ug.gid) {
6433 +                       return True;
6434 +               }
6435 +       }
6436 +       return False;
6437 +}
6438 +
6439 +/****************************************************************************
6440   Merge aces with a common sid - if both are allow or deny, OR the permissions together and
6441   delete the second one. If the first is deny, mask the permissions off and delete the allow
6442   if the permissions become zero, delete the deny if the permissions are non zero.
6443 @@ -692,7 +714,7 @@
6444  
6445                         curr_ace_next = curr_ace->next; /* Save the link in case of delete. */
6446  
6447 -                       if (sid_equal(&curr_ace->trustee, &curr_ace_outer->trustee) &&
6448 +                       if (identity_in_ace_equal(curr_ace, curr_ace_outer) &&
6449                                 (curr_ace->attr == curr_ace_outer->attr)) {
6450  
6451                                 if( DEBUGLVL( 10 )) {
6452 @@ -732,7 +754,7 @@
6453                          * we've put on the ACL, we know the deny must be the first one.
6454                          */
6455  
6456 -                       if (sid_equal(&curr_ace->trustee, &curr_ace_outer->trustee) &&
6457 +                       if (identity_in_ace_equal(curr_ace, curr_ace_outer) &&
6458                                 (curr_ace_outer->attr == DENY_ACE) && (curr_ace->attr == ALLOW_ACE)) {
6459  
6460                                 if( DEBUGLVL( 10 )) {
6461 diff -urN samba-3.0.24.orig/source/smbd/process.c samba-3.0.24/source/smbd/process.c
6462 --- samba-3.0.24.orig/source/smbd/process.c     2007-02-04 19:59:13.000000000 +0100
6463 +++ samba-3.0.24/source/smbd/process.c  2007-07-17 13:19:05.000000000 +0200
6464 @@ -1008,7 +1008,9 @@
6465  
6466         chain_size = 0;
6467         file_chain_reset();
6468 +#ifndef AVM_SMALLER
6469         reset_chain_p();
6470 +#endif
6471  
6472         if (msg_type != 0)
6473                 return(reply_special(inbuf,outbuf));  
6474 @@ -1285,8 +1287,10 @@
6475         if (t != -1)
6476                 select_timeout = MIN(select_timeout, t*1000);
6477  
6478 +#ifndef AVM_NO_PRINTING
6479         if (print_notify_messages_pending())
6480                 select_timeout = MIN(select_timeout, 1000);
6481 +#endif
6482  
6483         return select_timeout;
6484  }
6485 @@ -1477,10 +1481,11 @@
6486          */
6487         process_blocking_lock_queue(t);
6488  
6489 +#ifndef AVM_NO_PRINTING
6490         /* update printer queue caches if necessary */
6491 -  
6492         update_monitored_printq_cache();
6493 -  
6494 +#endif
6495 +
6496         /*
6497          * Check to see if we have any change notifies 
6498          * outstanding on the queue.
6499 @@ -1494,9 +1499,10 @@
6500         force_check_log_size();
6501         check_log_size();
6502  
6503 +#ifndef AVM_NO_PRINTING
6504         /* Send any queued printer notify message to interested smbd's. */
6505 -
6506         print_notify_send_messages(0);
6507 +#endif
6508  
6509         /*
6510          * Modify the select timeout depending upon
6511 diff -urN samba-3.0.24.orig/source/smbd/reply.c samba-3.0.24/source/smbd/reply.c
6512 --- samba-3.0.24.orig/source/smbd/reply.c       2007-02-04 20:09:01.000000000 +0100
6513 +++ samba-3.0.24/source/smbd/reply.c    2007-07-17 13:19:05.000000000 +0200
6514 @@ -3599,7 +3599,10 @@
6515         int outsize = 0;
6516         files_struct *fsp;
6517         START_PROFILE(SMBsplopen);
6518 -       
6519 +#ifdef AVM_NO_PRINTING
6520 +               END_PROFILE(SMBsplopen);
6521 +               return ERROR_DOS(ERRDOS,ERRnoaccess);
6522 +#else
6523         if (!CAN_PRINT(conn)) {
6524                 END_PROFILE(SMBsplopen);
6525                 return ERROR_DOS(ERRDOS,ERRnoaccess);
6526 @@ -3621,6 +3624,7 @@
6527  
6528         END_PROFILE(SMBsplopen);
6529         return(outsize);
6530 +#endif
6531  }
6532  
6533  /****************************************************************************
6534 @@ -3637,6 +3641,10 @@
6535  
6536         CHECK_FSP(fsp,conn);
6537  
6538 +#ifdef AVM_NO_PRINTING
6539 +               END_PROFILE(SMBsplretq);
6540 +               return ERROR_DOS(ERRDOS,ERRnoaccess);
6541 +#else
6542         if (!CAN_PRINT(conn)) {
6543                 END_PROFILE(SMBsplclose);
6544                 return ERROR_NT(NT_STATUS_UNSUCCESSFUL);
6545 @@ -3655,6 +3663,7 @@
6546  
6547         END_PROFILE(SMBsplclose);
6548         return(outsize);
6549 +#endif
6550  }
6551  
6552  /****************************************************************************
6553 @@ -3664,6 +3673,10 @@
6554  int reply_printqueue(connection_struct *conn,
6555                      char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
6556  {
6557 +#ifdef AVM_NO_PRINTING
6558 +               END_PROFILE(SMBsplretq);
6559 +               return ERROR_DOS(ERRDOS,ERRnoaccess);
6560 +#else
6561         int outsize = set_message(outbuf,2,3,True);
6562         int max_count = SVAL(inbuf,smb_vwv0);
6563         int start_index = SVAL(inbuf,smb_vwv1);
6564 @@ -3726,6 +3739,7 @@
6565    
6566         END_PROFILE(SMBsplretq);
6567         return(outsize);
6568 +#endif
6569  }
6570  
6571  /****************************************************************************
6572 diff -urN samba-3.0.24.orig/source/smbd/server.c samba-3.0.24/source/smbd/server.c
6573 --- samba-3.0.24.orig/source/smbd/server.c      2007-02-04 19:59:13.000000000 +0100
6574 +++ samba-3.0.24/source/smbd/server.c   2008-02-28 11:21:14.000000000 +0100
6575 @@ -22,7 +22,7 @@
6576  
6577  #include "includes.h"
6578  
6579 -static_decl_rpc;
6580 +/* AR7 ???? static_decl_rpc; */
6581  
6582  static int am_parent = 1;
6583  
6584 @@ -41,6 +41,41 @@
6585  extern int dcelogin_atmost_once;
6586  #endif /* WITH_DFS */
6587  
6588 +
6589 +
6590 +#ifdef SAMBA_DEBUG
6591 +void _fLog(char *fmt, ...)
6592 +{
6593 +       va_list va;
6594 +       FILE *fp = fopen("/var/tmp/smbd.log", "a");
6595 +       time_t t = time(0); /* LOG */
6596 +
6597 +       if (!fp) return;
6598 +
6599 +       fprintf(fp, " [%d] %02u:%02u  ", getpid(), (t / 60) % 60, t % 60);
6600 +       va_start(va, fmt);
6601 +       vfprintf(fp, fmt, va);
6602 +       va_end(va);
6603 +       fprintf(fp, "\n");
6604 +       fclose(fp);
6605 +}
6606 +
6607 +void _fDebug(char *fmt, ...)
6608 +{
6609 +       va_list va;
6610 +       FILE *fp = fopen("/var/tmp/smbd.log", "a");
6611 +       time_t t = time(0); /* LOG */
6612 +
6613 +       if (!fp) return;
6614 +
6615 +       fprintf(fp, " [%d] %02u:%02u ", getpid(), (t / 60) % 60, t % 60);
6616 +       va_start(va, fmt);
6617 +       vfprintf(fp, fmt, va);
6618 +       va_end(va);
6619 +       fclose(fp);
6620 +}
6621 +#endif
6622 +
6623  /* really we should have a top level context structure that has the
6624     client file descriptor as an element. That would require a major rewrite :(
6625  
6626 @@ -523,6 +558,7 @@
6627  **************************************************************************/
6628  void reload_printers(void)
6629  {
6630 +#ifndef AVM_NO_PRINTING
6631         int snum;
6632         int n_services = lp_numservices();
6633         int pnum = lp_servicenumber(PRINTERS_NAME);
6634 @@ -549,6 +585,7 @@
6635         }
6636  
6637         load_printers();
6638 +#endif /* AVM_NO_PRINTING */
6639  }
6640  
6641  /****************************************************************************
6642 @@ -631,7 +668,9 @@
6643  
6644         invalidate_all_vuids();
6645  
6646 +#ifndef AVM_NO_PRINTING
6647         print_notify_send_messages(3); /* 3 second timeout. */
6648 +#endif
6649  
6650         /* delete our entry in the connections database. */
6651         yield_connection(NULL,"");
6652 @@ -646,7 +685,9 @@
6653  #endif
6654  
6655         locking_end();
6656 +#ifndef AVM_NO_PRINTING
6657         printing_end();
6658 +#endif
6659  
6660         if (how != SERVER_EXIT_NORMAL) {
6661                 int oldlevel = DEBUGLEVEL;
6662 @@ -729,7 +770,9 @@
6663     mkproto.h.  Mixing $(builddir) and $(srcdir) source files in the current
6664     prototype generation system is too complicated. */
6665  
6666 +#if 0 /* AR7 */
6667  void build_options(BOOL screen);
6668 +#endif
6669  
6670   int main(int argc,const char *argv[])
6671  {
6672 @@ -741,6 +784,13 @@
6673         static BOOL log_stdout = False;
6674         static char *ports = NULL;
6675         int opt;
6676 +
6677 +#if 0 // AVM DEBUG
6678 +       extern void crashdump_init(char*);
6679 +       crashdump_init("smbd");
6680 +#endif
6681 +
6682 +#ifndef AVM_NO_POPT
6683         poptContext pc;
6684  
6685         struct poptOption long_options[] = {
6686 @@ -750,7 +800,9 @@
6687         {"foreground", 'F', POPT_ARG_VAL, &Fork, False, "Run daemon in foreground (for daemontools, etc.)" },
6688         {"no-process-group", '\0', POPT_ARG_VAL, &no_process_group, True, "Don't create a new process group" },
6689         {"log-stdout", 'S', POPT_ARG_VAL, &log_stdout, True, "Log to stdout" },
6690 +#if 0 /* AR7 */
6691         {"build-options", 'b', POPT_ARG_NONE, NULL, 'b', "Print build options" },
6692 +#endif
6693         {"port", 'p', POPT_ARG_STRING, &ports, 0, "Listen on the specified ports"},
6694         POPT_COMMON_SAMBA
6695         POPT_COMMON_DYNCONFIG
6696 @@ -766,21 +818,31 @@
6697         pc = poptGetContext("smbd", argc, argv, long_options, 0);
6698         
6699         while((opt = poptGetNextOpt(pc)) != -1) {
6700 +#if 0 /* AR7 */
6701                 switch (opt)  {
6702                 case 'b':
6703                         build_options(True); /* Display output to screen as well as debug */ 
6704                         exit(0);
6705                         break;
6706                 }
6707 +#endif
6708         }
6709  
6710         poptFreeContext(pc);
6711 +#else
6712 +       load_case_tables();
6713 +#endif /* AVM_NO_POPT */
6714 +
6715  
6716  #ifdef HAVE_SETLUID
6717         /* needed for SecureWare on SCO */
6718         setluid(0);
6719  #endif
6720  
6721 +#if 1 /* AVM */
6722 +       setpriority(PRIO_PROCESS, 0, 19); /* be nice */
6723 +#endif
6724 +
6725         sec_init();
6726  
6727         set_remote_machine_name("smbd", False);
6728 @@ -808,6 +870,16 @@
6729         /* make absolutely sure we run as root - to handle cases where people
6730            are crazy enough to have it setuid */
6731  
6732 +       generate_random_buffer(NULL, 0);
6733 +
6734 +       /* make absolutely sure we run as root - to handle cases where people
6735 +          are crazy enough to have it setuid */
6736 +
6737 +       gain_root_privilege();
6738 +       gain_root_group_privilege();
6739 +
6740 +       fault_setup((void (*)(void *))exit_server_fault);
6741 +       dump_core_setup("smbd");
6742         gain_root_privilege();
6743         gain_root_group_privilege();
6744  
6745 @@ -850,8 +922,10 @@
6746         DEBUG(2,("uid=%d gid=%d euid=%d egid=%d\n",
6747                  (int)getuid(),(int)getgid(),(int)geteuid(),(int)getegid()));
6748  
6749 +#if 0 /* AR7 */
6750         /* Output the build options to the debug log */ 
6751         build_options(False);
6752 +#endif
6753  
6754         if (sizeof(uint16) < 2 || sizeof(uint32) < 4) {
6755                 DEBUG(0,("ERROR: Samba is not configured correctly for the word size on your machine\n"));
6756 @@ -945,16 +1019,20 @@
6757  
6758         namecache_enable();
6759  
6760 +#ifndef AVM_SMALLER
6761         if (!init_registry())
6762                 exit(1);
6763 +#endif
6764  
6765  #if 0
6766         if (!init_svcctl_db())
6767                  exit(1);
6768  #endif
6769  
6770 +#ifndef AVM_NO_PRINTING
6771         if (!print_backend_init())
6772                 exit(1);
6773 +#endif
6774  
6775         if (!init_guest_info()) {
6776                 DEBUG(0,("ERROR: failed to setup guest info.\n"));
6777 @@ -971,14 +1049,18 @@
6778            smbd is launched via inetd and we fork a copy of 
6779            ourselves here */
6780  
6781 +#ifndef AVM_NO_PRINTING
6782         if ( is_daemon && !interactive )
6783                 start_background_queue(); 
6784 +#endif
6785  
6786 +#if 0 /* AVM */
6787         /* Always attempt to initialize DMAPI. We will only use it later if
6788          * lp_dmapi_support is set on the share, but we need a single global
6789          * session to work with.
6790          */
6791         dmapi_init_session();
6792 +#endif
6793  
6794         if (!open_sockets_smbd(is_daemon, interactive, ports))
6795                 exit(1);
6796 @@ -987,7 +1069,12 @@
6797          * everything after this point is run after the fork()
6798          */ 
6799  
6800 +#if 0 /* AR7 */
6801         static_init_rpc;
6802 +#else
6803 +       rpc_wks_init();
6804 +       rpc_srv_init();
6805 +#endif
6806  
6807         init_modules();
6808  
6809 diff -urN samba-3.0.24.orig/source/smbd/service.c samba-3.0.24/source/smbd/service.c
6810 --- samba-3.0.24.orig/source/smbd/service.c     2007-02-04 19:59:13.000000000 +0100
6811 +++ samba-3.0.24/source/smbd/service.c  2007-07-17 13:19:05.000000000 +0200
6812 @@ -254,6 +254,7 @@
6813                 iService = add_home_service(service,service /* 'username' */, phome_dir);
6814         }
6815  
6816 +#ifndef AVM_NO_PRINTING
6817         /* If we still don't have a service, attempt to add it as a printer. */
6818         if (iService < 0) {
6819                 int iPrinterService;
6820 @@ -273,6 +274,7 @@
6821                         }
6822                 }
6823         }
6824 +#endif /* AVM_NO_PRINTING */
6825  
6826         /* Check for default vfs service?  Unsure whether to implement this */
6827         if (iService < 0) {
6828 @@ -1136,7 +1138,9 @@
6829  void close_cnum(connection_struct *conn, uint16 vuid)
6830  {
6831         if (IS_IPC(conn)) {
6832 +#ifndef AVM_SMALLER
6833                 pipe_close_conn(conn);
6834 +#endif
6835         } else {
6836                 file_close_conn(conn);
6837                 dptr_closecnum(conn);
6838 diff -urN samba-3.0.24.orig/source/smbd/sesssetup.c samba-3.0.24/source/smbd/sesssetup.c
6839 --- samba-3.0.24.orig/source/smbd/sesssetup.c   2007-02-04 19:59:13.000000000 +0100
6840 +++ samba-3.0.24/source/smbd/sesssetup.c        2007-07-17 13:19:05.000000000 +0200
6841 @@ -1035,6 +1035,7 @@
6842  
6843                 map_username(sub_user);
6844                 add_session_user(sub_user);
6845 +               add_session_workgroup(domain);
6846                 /* Then force it to null for the benfit of the code below */
6847                 *user = 0;
6848         }
6849 diff -urN samba-3.0.24.orig/source/smbd/trans2.c samba-3.0.24/source/smbd/trans2.c
6850 --- samba-3.0.24.orig/source/smbd/trans2.c      2007-02-04 20:09:01.000000000 +0100
6851 +++ samba-3.0.24/source/smbd/trans2.c   2007-07-17 13:19:05.000000000 +0200
6852 @@ -2636,13 +2636,16 @@
6853                                 quotas.qflags = SVAL(pdata,40);
6854                 
6855                                 /* unknown_2 6 NULL bytes follow*/
6856 -               
6857 +
6858                                 /* now set the quotas */
6859 +#if 1 /* AR7 */
6860 +                                       return ERROR_DOS(ERRSRV,ERRerror);
6861 +#else
6862                                 if (vfs_set_ntquota(fsp, SMB_USER_FS_QUOTA_TYPE, NULL, &quotas)!=0) {
6863                                         DEBUG(0,("vfs_set_ntquota() failed for service [%s]\n",lp_servicename(SNUM(conn))));
6864                                         return ERROR_DOS(ERRSRV,ERRerror);
6865                                 }
6866 -                       
6867 +#endif                 
6868                                 break;
6869                         }
6870                 default:
6871 diff -urN samba-3.0.24.orig/source/smbd/uid.c samba-3.0.24/source/smbd/uid.c
6872 --- samba-3.0.24.orig/source/smbd/uid.c 2006-04-20 04:29:19.000000000 +0200
6873 +++ samba-3.0.24/source/smbd/uid.c      2007-08-07 09:38:18.000000000 +0200
6874 @@ -151,7 +151,9 @@
6875         char group_c;
6876         BOOL must_free_token = False;
6877         NT_USER_TOKEN *token = NULL;
6878 -
6879 +       int num_groups = 0;
6880 +       gid_t *group_list = NULL;
6881 +       
6882         if (!conn) {
6883                 DEBUG(2,("change_to_user: Connection not open\n"));
6884                 return(False);
6885 @@ -190,14 +192,14 @@
6886         if (conn->force_user) /* security = share sets this too */ {
6887                 uid = conn->uid;
6888                 gid = conn->gid;
6889 -               current_user.ut.groups = conn->groups;
6890 -               current_user.ut.ngroups = conn->ngroups;
6891 +               group_list = conn->groups;
6892 +               num_groups = conn->ngroups;
6893                 token = conn->nt_user_token;
6894         } else if (vuser) {
6895                 uid = conn->admin_user ? 0 : vuser->uid;
6896                 gid = vuser->gid;
6897 -               current_user.ut.ngroups = vuser->n_groups;
6898 -               current_user.ut.groups  = vuser->groups;
6899 +               num_groups = vuser->n_groups;
6900 +               group_list  = vuser->groups;
6901                 token = vuser->nt_user_token;
6902         } else {
6903                 DEBUG(2,("change_to_user: Invalid vuid used %d in accessing "
6904 @@ -230,8 +232,8 @@
6905                          */
6906  
6907                         int i;
6908 -                       for (i = 0; i < current_user.ut.ngroups; i++) {
6909 -                               if (current_user.ut.groups[i] == conn->gid) {
6910 +                       for (i = 0; i < num_groups; i++) {
6911 +                               if (group_list[i] == conn->gid) {
6912                                         gid = conn->gid;
6913                                         gid_to_sid(&token->user_sids[1], gid);
6914                                         break;
6915 @@ -243,6 +245,12 @@
6916                 }
6917         }
6918         
6919 +       /* Now set current_user since we will immediately also call
6920 +          set_sec_ctx() */
6921 +
6922 +       current_user.ut.ngroups = num_groups;
6923 +       current_user.ut.groups  = group_list;   
6924 +
6925         set_sec_ctx(uid, gid, current_user.ut.ngroups, current_user.ut.groups,
6926                     token);
6927  
6928 diff -urN samba-3.0.24.orig/source/smbd/vfs-wrap.c samba-3.0.24/source/smbd/vfs-wrap.c
6929 --- samba-3.0.24.orig/source/smbd/vfs-wrap.c    2007-02-04 19:59:13.000000000 +0100
6930 +++ samba-3.0.24/source/smbd/vfs-wrap.c 2007-08-07 09:38:18.000000000 +0200
6931 @@ -694,6 +694,44 @@
6932                 return result;
6933         }
6934  
6935 +#if 1 // AVM patch - don't growth the file  (too much time and RAM for copy of large files to USB1.1 FAT filesystem)
6936 +       { 
6937 +       SMB_BIG_UINT big_len = len;
6938 +
6939 +       result = SMB_VFS_FSTAT(fsp,fsp->fh->fd,&st);
6940 +       if (result == -1) {
6941 +               goto done;
6942 +       }
6943 +
6944 +       if (big_len == (SMB_BIG_UINT)st.st_size) {
6945 +               result = 0;
6946 +               goto done;
6947 +       }
6948 +
6949 +       if (big_len > (SMB_BIG_UINT)st.st_size) {
6950 +               SMB_BIG_UINT space_avail;
6951 +               SMB_BIG_UINT bsize,dfree,dsize;
6952 +               big_len -= st.st_size;
6953 +               big_len /= 1024; /* Len is now number of 1k blocks needed. */
6954 +               space_avail = SMB_VFS_DISK_FREE(fsp->conn ,fsp->fsp_name,False,&bsize,&dfree,&dsize);
6955 +               if (space_avail == (SMB_BIG_UINT)-1) {
6956 +                       result = -1;
6957 +                       goto done;
6958 +               }
6959 +
6960 +               if (big_len > space_avail) {
6961 +                       errno = ENOSPC;
6962 +                       result = -1;
6963 +                       goto done;
6964 +               }
6965 +
6966 +               // do nothing to be fast!
6967 +               result = 0;
6968 +               goto done;
6969 +       }
6970 +       } // block
6971 +#endif // AVM Patch
6972 +
6973         /* we used to just check HAVE_FTRUNCATE_EXTEND and only use
6974            sys_ftruncate if the system supports it. Then I discovered that
6975            you can have some filesystems that support ftruncate
6976 diff -urN samba-3.0.24.orig/source/utils/avm_smbpasswd.c samba-3.0.24/source/utils/avm_smbpasswd.c
6977 --- samba-3.0.24.orig/source/utils/avm_smbpasswd.c      1970-01-01 01:00:00.000000000 +0100
6978 +++ samba-3.0.24/source/utils/avm_smbpasswd.c   2007-10-23 12:27:13.000000000 +0200
6979 @@ -0,0 +1,213 @@
6980 +/*
6981 + * Unix SMB/CIFS implementation. 
6982 + * Copyright (C) Jeremy Allison 1995-1998
6983 + * Copyright (C) Tim Potter     2001
6984 + * 
6985 + * This program is free software; you can redistribute it and/or modify it
6986 + * under the terms of the GNU General Public License as published by the
6987 + * Free Software Foundation; either version 2 of the License, or (at your
6988 + * option) any later version.
6989 + * 
6990 + * This program is distributed in the hope that it will be useful, but WITHOUT
6991 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6992 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
6993 + * more details.
6994 + * 
6995 + * You should have received a copy of the GNU General Public License along with
6996 + * this program; if not, write to the Free Software Foundation, Inc., 675
6997 + * Mass Ave, Cambridge, MA 02139, USA.  */
6998 +
6999 +#include "includes.h"
7000 +
7001 +
7002 +void E_md4hash(const char *passwd, uchar p16[16])
7003 +{
7004 +       int len;
7005 +       smb_ucs2_t wpwd[129];
7006 +       int i;
7007 +
7008 +       
7009 +       /* Password must be converted to NT unicode - null terminated. */
7010 +       len = strlen(passwd);
7011 +#if 0
7012 +       push_ucs2(NULL, wpwd, (const char *)passwd, 256, STR_UNICODE|STR_NOALIGN|STR_TERMINATE);
7013 +#else
7014 +       for (i = 0; i < len; i++) {
7015 +               wpwd[i] = (unsigned char)passwd[i];
7016 +       }
7017 +       wpwd[i] = 0; // termination
7018 +#endif
7019 +       /* Calculate length in bytes */
7020 +       len = len /*strlen_w(wpwd)*/ * sizeof(int16);
7021 +
7022 +       mdfour(p16, (unsigned char *)wpwd, len);
7023 +       ZERO_STRUCT(wpwd);      
7024 +}
7025 +
7026 +/**
7027 + * Creates the DES forward-only Hash of the users password in DOS ASCII charset
7028 + * @param passwd password in 'unix' charset.
7029 + * @param p16 return password hashed with DES, caller allocated 16 byte buffer
7030 + * @return False if password was > 14 characters, and therefore may be incorrect, otherwise True
7031 + * @note p16 is filled in regardless
7032 + */
7033
7034 +BOOL E_deshash(const char *passwd, uchar p16[16])
7035 +{
7036 +       BOOL ret = True;
7037 +       char dospwd[256+2];
7038 +       int i;
7039 +       int len;
7040 +       
7041 +       /* Password must be converted to DOS charset - null terminated, uppercase. */
7042 +//     push_ascii(dospwd, passwd, sizeof(dospwd), STR_UPPER|STR_TERMINATE);
7043 +       len = strlen(passwd);
7044 +       for (i = 0; i < len; i++) {
7045 +               char c = passwd[i];
7046 +               if (islower(c)) c = toupper(c);
7047 +               dospwd[i] = c;
7048 +       }
7049 +       dospwd[i] = 0;
7050 +       
7051 +       /* Only the fisrt 14 chars are considered, password need not be null terminated. */
7052 +       E_P16((const unsigned char *)dospwd, p16);
7053 +
7054 +       if (strlen(dospwd) > 14) {
7055 +               ret = False;
7056 +       }
7057 +
7058 +       memset(dospwd, 0, sizeof(dospwd));
7059 +       // ZERO_STRUCT(dospwd); 
7060 +
7061 +       return ret;
7062 +}
7063 +
7064 +static void my_pdb_sethexpwd(char *p, const unsigned char *pwd)
7065 +{
7066 +       if (pwd != NULL) {
7067 +               int i;
7068 +               for (i = 0; i < 16; i++)
7069 +                       slprintf(&p[i*2], 3, "%02X", pwd[i]);
7070 +       } else {
7071 +               strncpy(p, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 32);
7072 +       }
7073 +}
7074 +
7075 +static void crypt_password (const char *user_name,
7076 +                          const char *new_passwd, char *new_lanman_p16, char *new_nt_p16)
7077 +{
7078 +       /* Calculate the MD4 hash (NT compatible) of the password */
7079 +       E_md4hash(new_passwd, new_nt_p16);
7080 +
7081 +       if (!E_deshash(new_passwd, new_lanman_p16)) {
7082 +               /* E_deshash returns false for 'long' passwords (> 14
7083 +                  DOS chars).  This allows us to match Win2k, which
7084 +                  does not store a LM hash for these passwords (which
7085 +                  would reduce the effective password length to 14 */
7086 +
7087 +               memset(new_lanman_p16, 0, LM_HASH_LEN);
7088 +       }
7089 +}
7090 +
7091 +/*
7092 +ftpuser:1000:8C6F5D02DEB21501AAD3B435B51404EE:E0FBA38268D0EC66EF1CB452D5885E53:[UX         ]:LCT-00000000:
7093 +*/
7094 +
7095 +/*********************************************************
7096 + Start here.
7097 +**********************************************************/
7098 +int main(int argc, char **argv)
7099 +{      
7100 +       char *passwd_filename = "/var/samba/private/smbpasswd";
7101 +       char *cleartext_filename = "/var/tmp/smbpasswd.cleartext";
7102 +
7103 +       if (argc != 1) {
7104 +               fprintf(stderr, "use: smbpasswd\n");
7105 +               fprintf(stderr, "  file %s will be encrypted to %s\n", cleartext_filename, passwd_filename);
7106 +               return -9;
7107 +       }
7108 +
7109 +       FILE *fp = fopen(passwd_filename, "w");
7110 +
7111 +       if (fp == NULL) {
7112 +               fprintf(stderr, "can't write %s\n", passwd_filename);
7113 +               return -10;
7114 +       }
7115 +       /* Make sure it is only rw by the owner */
7116 +       chmod(passwd_filename, 0600);
7117 +
7118 +
7119 +       FILE *fp_in = fopen(cleartext_filename, "r");
7120 +       if (!fp_in) {
7121 +               fprintf(stderr, "can't read %s\n", cleartext_filename);
7122 +               fclose(fp);
7123 +               return -11;
7124 +       }
7125 +
7126 +
7127 +       char line[512];
7128 +
7129 +       unsigned nusers = 0;
7130 +       while(line == fgets(line, sizeof(line)-1, fp_in)) {
7131 +               char *username, *passwd, *extra;
7132 +               unsigned uid;
7133 +               uchar new_lanman_p16[LM_HASH_LEN];
7134 +               uchar new_nt_p16[NT_HASH_LEN];
7135 +               char ascii_p16[32+1];
7136 +               char *p;
7137 +                       
7138 +               line[sizeof(line)-1] = '\0';
7139 +               if (strlen(line)) {
7140 +                       p = &line[strlen(line)-1];
7141 +                       while(p >= line) {
7142 +                               if (*p != '\n' && *p != '\r') break;
7143 +                               *p = '\0';
7144 +                               p--;
7145 +                       }
7146 +               }
7147 +
7148 +               p = line;
7149 +               char *p2 = strchr(p, ':');
7150 +               if (!p2) goto err;
7151 +               *p2 = 0;
7152 +               username = p;
7153 +
7154 +               p = p2 + 1;
7155 +               p2 = strchr(p, ':');
7156 +               if (!p2) goto err;
7157 +               *p2 = 0;
7158 +               uid = atoi(p);
7159 +
7160 +               p = p2 + 1;
7161 +               p2 = strchr(p, ':');
7162 +               if (!p2) goto err;
7163 +               *p2 = 0;
7164 +               passwd = p;
7165 +
7166 +               extra = p2 + 1;
7167 +
7168 +               crypt_password(username, passwd, new_lanman_p16, new_nt_p16);
7169 +
7170 +               fprintf(fp, "%s:%u:", username, uid);
7171 +
7172 +               my_pdb_sethexpwd(ascii_p16, new_lanman_p16);
7173 +               ascii_p16[32] = '\0';
7174 +               fprintf(fp, "%s:", ascii_p16);
7175 +
7176 +               my_pdb_sethexpwd(ascii_p16, new_nt_p16);
7177 +               ascii_p16[32] = '\0';
7178 +               fprintf(fp, "%s:", ascii_p16);
7179 +
7180 +               fprintf(fp, "%s\n", extra);
7181 +
7182 +               nusers++;
7183 +       } // while
7184 +
7185 +err:
7186 +       fclose(fp_in);
7187 +       fclose(fp);
7188 +
7189 +fprintf(stderr, "%u samba users written to %s\n", nusers, passwd_filename);
7190 +       return 0;
7191 +}
7192 +
7193 diff -urN samba-3.0.24.orig/source/utils/ntlm_auth_proto.h samba-3.0.24/source/utils/ntlm_auth_proto.h
7194 --- samba-3.0.24.orig/source/utils/ntlm_auth_proto.h    1970-01-01 01:00:00.000000000 +0100
7195 +++ samba-3.0.24/source/utils/ntlm_auth_proto.h 2007-07-17 13:19:05.000000000 +0200
7196 @@ -0,0 +1,28 @@
7197 +#ifndef _NTLM_AUTH_PROTO_H_
7198 +#define _NTLM_AUTH_PROTO_H_
7199 +
7200 +/* This file is automatically generated with "make proto". DO NOT EDIT */
7201 +
7202 +
7203 +/* The following definitions come from utils/ntlm_auth.c  */
7204 +
7205 +const char *get_winbind_domain(void);
7206 +const char *get_winbind_netbios_name(void);
7207 +DATA_BLOB get_challenge(void) ;
7208 +NTSTATUS contact_winbind_auth_crap(const char *username, 
7209 +                                  const char *domain, 
7210 +                                  const char *workstation,
7211 +                                  const DATA_BLOB *challenge, 
7212 +                                  const DATA_BLOB *lm_response, 
7213 +                                  const DATA_BLOB *nt_response, 
7214 +                                  uint32 flags, 
7215 +                                  uint8 lm_key[8], 
7216 +                                  uint8 user_session_key[16], 
7217 +                                  char **error_string, 
7218 +                                  char **unix_name) ;
7219 +
7220 +/* The following definitions come from utils/ntlm_auth_diagnostics.c  */
7221 +
7222 +BOOL diagnose_ntlm_auth(void);
7223 +
7224 +#endif /*  _NTLM_AUTH_PROTO_H_  */
7225 diff -urN samba-3.0.24/source/nmbd/nmbd.c samba-3.0.24.new/source/nmbd/nmbd.c
7226 --- samba-3.0.24/source/nmbd/nmbd.c     2007-02-04 19:59:23.000000000 +0100
7227 +++ samba-3.0.24.new/source/nmbd/nmbd.c 2010-03-07 19:33:23.000000000 +0100
7228 @@ -23,6 +23,39 @@
7229  
7230  #include "includes.h"
7231  
7232 +#ifdef SAMBA_DEBUG
7233 +void _fLog(char *fmt, ...)
7234 +{
7235 +        va_list va;
7236 +        FILE *fp = fopen("/var/tmp/nmbd.log", "a");
7237 +        time_t t = time(0); /* LOG */
7238 +
7239 +        if (!fp) return;
7240 +
7241 +        fprintf(fp, " [%d] %02u:%02u  ", getpid(), (t / 60) % 60, t % 60);
7242 +        va_start(va, fmt);
7243 +        vfprintf(fp, fmt, va);
7244 +        va_end(va);
7245 +        fprintf(fp, "\n");
7246 +        fclose(fp);
7247 +}
7248 +
7249 +void _fDebug(char *fmt, ...)
7250 +{
7251 +        va_list va;
7252 +        FILE *fp = fopen("/var/tmp/nmbd.log", "a");
7253 +        time_t t = time(0); /* LOG */
7254 +
7255 +        if (!fp) return;
7256 +
7257 +        fprintf(fp, " [%d] %02u:%02u ", getpid(), (t / 60) % 60, t % 60);
7258 +        va_start(va, fmt);
7259 +        vfprintf(fp, fmt, va);
7260 +        va_end(va);
7261 +        fclose(fp);
7262 +}
7263 +#endif
7264 +
7265  int ClientNMB       = -1;
7266  int ClientDGRAM     = -1;
7267  int global_nmb_port = -1;