Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 294408 Details for
Bug 432090
gcc 4.3.0: internal compiler error: in generate_element_copy, at tree-sra.c:2603
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
File to pass to g++ -O to reproduce the internal error
tree-sra.c_2603_error.C (text/x-c++src), 1.29 MB, created by
Matthew Farrellee
on 2008-02-08 19:53:33 UTC
(
hide
)
Description:
File to pass to g++ -O to reproduce the internal error
Filename:
MIME Type:
Creator:
Matthew Farrellee
Created:
2008-02-08 19:53:33 UTC
Size:
1.29 MB
patch
obsolete
>// /usr/libexec/gcc/i386-redhat-linux/4.3.0/cc1plus -quiet -I.. -I../.. -I../h -I../condor_includes -I../condor_c++_util -I../condor_daemon_client -D_GNU_SOURCE -DHAVE_CONFIG_H -DI386=I386 -DLINUX=LINUX -DWANT_QUILL -DWANT_TT -DGLIBC=GLIBC -DGLIBC27=GLIBC27 -DC_COMP_KIND_GCC -DC_COMP_MAJOR_GCC_4 -DC_COMP_MINOR_GCC_4_3 -DC_COMP_PATCH_GCC_4_3_0 -DWITH_OPENSSL -DCOMPILE_SOAP_SSL -DWITH_OPENSSL -DCOMPILE_SOAP_SSL -D_FORTIFY_SOURCE=2 daemon_core.C -quiet -dumpbase daemon_core.C -m32 -march=i386 -mtune=generic -march=i486 -auxbase-strip daemon_core.o -g -g -g -O2 -Wall -W -Wextra -Wfloat-equal -Wshadow -Wendif-labels -Wpointer-arith -Wcast-qual -Wcast-align -Wvolatile-register-var -Wno-deprecated -fexceptions -fasynchronous-unwind-tables -fstack-protector -fno-implicit-templates --param ssp-buffer-size=4 -o - -frandom-seed=0 ># 1 "daemon_core.C" ># 1 "/builddir/build/BUILD/condor-7.0.0/src/condor_daemon_core.V6//" ># 1 "<built-in>" ># 1 "<command-line>" ># 1 "daemon_core.C" ># 27 "daemon_core.C" ># 1 "../condor_includes/condor_common.h" 1 ># 28 "../condor_includes/condor_common.h" ># 1 "../config.h" 1 ># 29 "../condor_includes/condor_common.h" 2 > > > > > ># 1 "../condor_includes/condor_header_features.h" 1 ># 35 "../condor_includes/condor_common.h" 2 > > > > ># 1 "../condor_includes/condor_system.h" 1 ># 35 "../condor_includes/condor_system.h" ># 1 "../condor_includes/condor_sys_types.h" 1 ># 36 "../condor_includes/condor_system.h" 2 ># 60 "../condor_includes/condor_system.h" ># 1 "../condor_includes/condor_sys_linux.h" 1 ># 42 "../condor_includes/condor_sys_linux.h" ># 1 "/usr/include/sys/types.h" 1 3 4 ># 27 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 335 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 360 "/usr/include/sys/cdefs.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 361 "/usr/include/sys/cdefs.h" 2 3 4 ># 336 "/usr/include/features.h" 2 3 4 ># 359 "/usr/include/features.h" 3 4 ># 1 "/usr/include/gnu/stubs.h" 1 3 4 > > > ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 5 "/usr/include/gnu/stubs.h" 2 3 4 > > ># 1 "/usr/include/gnu/stubs-32.h" 1 3 4 ># 8 "/usr/include/gnu/stubs.h" 2 3 4 ># 360 "/usr/include/features.h" 2 3 4 ># 28 "/usr/include/sys/types.h" 2 3 4 > >extern "C" { > ># 1 "/usr/include/bits/types.h" 1 3 4 ># 28 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned char __u_char; >typedef unsigned short int __u_short; >typedef unsigned int __u_int; >typedef unsigned long int __u_long; > > >typedef signed char __int8_t; >typedef unsigned char __uint8_t; >typedef signed short int __int16_t; >typedef unsigned short int __uint16_t; >typedef signed int __int32_t; >typedef unsigned int __uint32_t; > > > > >__extension__ typedef signed long long int __int64_t; >__extension__ typedef unsigned long long int __uint64_t; > > > > > > > >__extension__ typedef long long int __quad_t; >__extension__ typedef unsigned long long int __u_quad_t; ># 131 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/typesizes.h" 1 3 4 ># 132 "/usr/include/bits/types.h" 2 3 4 > > >__extension__ typedef __u_quad_t __dev_t; >__extension__ typedef unsigned int __uid_t; >__extension__ typedef unsigned int __gid_t; >__extension__ typedef unsigned long int __ino_t; >__extension__ typedef __u_quad_t __ino64_t; >__extension__ typedef unsigned int __mode_t; >__extension__ typedef unsigned int __nlink_t; >__extension__ typedef long int __off_t; >__extension__ typedef __quad_t __off64_t; >__extension__ typedef int __pid_t; >__extension__ typedef struct { int __val[2]; } __fsid_t; >__extension__ typedef long int __clock_t; >__extension__ typedef unsigned long int __rlim_t; >__extension__ typedef __u_quad_t __rlim64_t; >__extension__ typedef unsigned int __id_t; >__extension__ typedef long int __time_t; >__extension__ typedef unsigned int __useconds_t; >__extension__ typedef long int __suseconds_t; > >__extension__ typedef int __daddr_t; >__extension__ typedef long int __swblk_t; >__extension__ typedef int __key_t; > > >__extension__ typedef int __clockid_t; > > >__extension__ typedef void * __timer_t; > > >__extension__ typedef long int __blksize_t; > > > > >__extension__ typedef long int __blkcnt_t; >__extension__ typedef __quad_t __blkcnt64_t; > > >__extension__ typedef unsigned long int __fsblkcnt_t; >__extension__ typedef __u_quad_t __fsblkcnt64_t; > > >__extension__ typedef unsigned long int __fsfilcnt_t; >__extension__ typedef __u_quad_t __fsfilcnt64_t; > >__extension__ typedef int __ssize_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >__extension__ typedef int __intptr_t; > > >__extension__ typedef unsigned int __socklen_t; ># 32 "/usr/include/sys/types.h" 2 3 4 > > > >typedef __u_char u_char; >typedef __u_short u_short; >typedef __u_int u_int; >typedef __u_long u_long; >typedef __quad_t quad_t; >typedef __u_quad_t u_quad_t; >typedef __fsid_t fsid_t; > > > > >typedef __loff_t loff_t; > > > >typedef __ino_t ino_t; > > > > > > >typedef __ino64_t ino64_t; > > > > >typedef __dev_t dev_t; > > > > >typedef __gid_t gid_t; > > > > >typedef __mode_t mode_t; > > > > >typedef __nlink_t nlink_t; > > > > >typedef __uid_t uid_t; > > > > > >typedef __off_t off_t; > > > > > > >typedef __off64_t off64_t; > > > > >typedef __pid_t pid_t; > > > > >typedef __id_t id_t; > > > > >typedef __ssize_t ssize_t; > > > > > >typedef __daddr_t daddr_t; >typedef __caddr_t caddr_t; > > > > > >typedef __key_t key_t; ># 133 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 59 "/usr/include/time.h" 3 4 > > >typedef __clock_t clock_t; > > > ># 75 "/usr/include/time.h" 3 4 > > >typedef __time_t time_t; > > > ># 93 "/usr/include/time.h" 3 4 >typedef __clockid_t clockid_t; ># 105 "/usr/include/time.h" 3 4 >typedef __timer_t timer_t; ># 134 "/usr/include/sys/types.h" 2 3 4 > > > >typedef __useconds_t useconds_t; > > > >typedef __suseconds_t suseconds_t; > > > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 214 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 3 4 >typedef unsigned int size_t; ># 148 "/usr/include/sys/types.h" 2 3 4 > > > >typedef unsigned long int ulong; >typedef unsigned short int ushort; >typedef unsigned int uint; ># 195 "/usr/include/sys/types.h" 3 4 >typedef int int8_t __attribute__ ((__mode__ (__QI__))); >typedef int int16_t __attribute__ ((__mode__ (__HI__))); >typedef int int32_t __attribute__ ((__mode__ (__SI__))); >typedef int int64_t __attribute__ ((__mode__ (__DI__))); > > >typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); >typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); > >typedef int register_t __attribute__ ((__mode__ (__word__))); ># 217 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/endian.h" 1 3 4 ># 37 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/endian.h" 1 3 4 ># 38 "/usr/include/endian.h" 2 3 4 ># 218 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/select.h" 1 3 4 ># 31 "/usr/include/sys/select.h" 3 4 ># 1 "/usr/include/bits/select.h" 1 3 4 ># 32 "/usr/include/sys/select.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 24 "/usr/include/bits/sigset.h" 3 4 >typedef int __sig_atomic_t; > > > > >typedef struct > { > unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; > } __sigset_t; ># 35 "/usr/include/sys/select.h" 2 3 4 > > > >typedef __sigset_t sigset_t; > > > > > ># 1 "/usr/include/time.h" 1 3 4 ># 121 "/usr/include/time.h" 3 4 >struct timespec > { > __time_t tv_sec; > long int tv_nsec; > }; ># 45 "/usr/include/sys/select.h" 2 3 4 > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 69 "/usr/include/bits/time.h" 3 4 >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 47 "/usr/include/sys/select.h" 2 3 4 ># 55 "/usr/include/sys/select.h" 3 4 >typedef long int __fd_mask; ># 67 "/usr/include/sys/select.h" 3 4 >typedef struct > { > > > > __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; > > > > > > } fd_set; > > > > > > >typedef __fd_mask fd_mask; ># 99 "/usr/include/sys/select.h" 3 4 >extern "C" { ># 109 "/usr/include/sys/select.h" 3 4 >extern int select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout); ># 121 "/usr/include/sys/select.h" 3 4 >extern int pselect (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > const struct timespec *__restrict __timeout, > const __sigset_t *__restrict __sigmask); > > >} ># 221 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/sysmacros.h" 1 3 4 ># 30 "/usr/include/sys/sysmacros.h" 3 4 >__extension__ >extern unsigned int gnu_dev_major (unsigned long long int __dev) > throw (); >__extension__ >extern unsigned int gnu_dev_minor (unsigned long long int __dev) > throw (); >__extension__ >extern unsigned long long int gnu_dev_makedev (unsigned int __major, > unsigned int __minor) > throw (); > > >__extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned int >gnu_dev_major (unsigned long long int __dev) throw () >{ > return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); >} > >__extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned int >gnu_dev_minor (unsigned long long int __dev) throw () >{ > return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); >} > >__extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned long long int >gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () >{ > return ((__minor & 0xff) | ((__major & 0xfff) << 8) > | (((unsigned long long int) (__minor & ~0xff)) << 12) > | (((unsigned long long int) (__major & ~0xfff)) << 32)); >} ># 224 "/usr/include/sys/types.h" 2 3 4 > > > > >typedef __blksize_t blksize_t; > > > > > > >typedef __blkcnt_t blkcnt_t; > > > >typedef __fsblkcnt_t fsblkcnt_t; > > > >typedef __fsfilcnt_t fsfilcnt_t; ># 262 "/usr/include/sys/types.h" 3 4 >typedef __blkcnt64_t blkcnt64_t; >typedef __fsblkcnt64_t fsblkcnt64_t; >typedef __fsfilcnt64_t fsfilcnt64_t; > > > > > ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 36 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef unsigned long int pthread_t; > > >typedef union >{ > char __size[36]; > long int __align; >} pthread_attr_t; > > >typedef struct __pthread_internal_slist >{ > struct __pthread_internal_slist *__next; >} __pthread_slist_t; > > > > >typedef union >{ > struct __pthread_mutex_s > { > int __lock; > unsigned int __count; > int __owner; > > > int __kind; > unsigned int __nusers; > __extension__ union > { > int __spins; > __pthread_slist_t __list; > }; > } __data; > char __size[24]; > long int __align; >} pthread_mutex_t; > >typedef union >{ > char __size[4]; > long int __align; >} pthread_mutexattr_t; > > > > >typedef union >{ > struct > { > int __lock; > unsigned int __futex; > __extension__ unsigned long long int __total_seq; > __extension__ unsigned long long int __wakeup_seq; > __extension__ unsigned long long int __woken_seq; > void *__mutex; > unsigned int __nwaiters; > unsigned int __broadcast_seq; > } __data; > char __size[48]; > __extension__ long long int __align; >} pthread_cond_t; > >typedef union >{ > char __size[4]; > long int __align; >} pthread_condattr_t; > > > >typedef unsigned int pthread_key_t; > > > >typedef int pthread_once_t; > > > > > >typedef union >{ > struct > { > int __lock; > unsigned int __nr_readers; > unsigned int __readers_wakeup; > unsigned int __writer_wakeup; > unsigned int __nr_readers_queued; > unsigned int __nr_writers_queued; > > > unsigned char __flags; > unsigned char __shared; > unsigned char __pad1; > unsigned char __pad2; > int __writer; > } __data; > char __size[32]; > long int __align; >} pthread_rwlock_t; > >typedef union >{ > char __size[8]; > long int __align; >} pthread_rwlockattr_t; > > > > > >typedef volatile int pthread_spinlock_t; > > > > >typedef union >{ > char __size[20]; > long int __align; >} pthread_barrier_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_barrierattr_t; ># 271 "/usr/include/sys/types.h" 2 3 4 > > >} ># 43 "../condor_includes/condor_sys_linux.h" 2 > ># 1 "../condor_includes/condor_fix_sys_stat.h" 1 ># 56 "../condor_includes/condor_fix_sys_stat.h" ># 1 "/usr/include/sys/stat.h" 1 3 4 ># 39 "/usr/include/sys/stat.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 40 "/usr/include/sys/stat.h" 2 3 4 ># 105 "/usr/include/sys/stat.h" 3 4 >extern "C" { > ># 1 "/usr/include/bits/stat.h" 1 3 4 ># 36 "/usr/include/bits/stat.h" 3 4 >struct stat > { > __dev_t st_dev; > unsigned short int __pad1; > > __ino_t st_ino; > > > > __mode_t st_mode; > __nlink_t st_nlink; > __uid_t st_uid; > __gid_t st_gid; > __dev_t st_rdev; > unsigned short int __pad2; > > __off_t st_size; > > > > __blksize_t st_blksize; > > > __blkcnt_t st_blocks; ># 70 "/usr/include/bits/stat.h" 3 4 > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; ># 85 "/usr/include/bits/stat.h" 3 4 > unsigned long int __unused4; > unsigned long int __unused5; > > > > }; > > >struct stat64 > { > __dev_t st_dev; > unsigned int __pad1; > > __ino_t __st_ino; > __mode_t st_mode; > __nlink_t st_nlink; > __uid_t st_uid; > __gid_t st_gid; > __dev_t st_rdev; > unsigned int __pad2; > __off64_t st_size; > __blksize_t st_blksize; > > __blkcnt64_t st_blocks; > > > > > > > > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; ># 127 "/usr/include/bits/stat.h" 3 4 > __ino64_t st_ino; > }; ># 108 "/usr/include/sys/stat.h" 2 3 4 ># 209 "/usr/include/sys/stat.h" 3 4 >extern int stat (__const char *__restrict __file, > struct stat *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern int fstat (int __fd, struct stat *__buf) throw () __attribute__ ((__nonnull__ (2))); ># 228 "/usr/include/sys/stat.h" 3 4 >extern int stat64 (__const char *__restrict __file, > struct stat64 *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); >extern int fstat64 (int __fd, struct stat64 *__buf) throw () __attribute__ ((__nonnull__ (2))); > > > > > > > >extern int fstatat (int __fd, __const char *__restrict __file, > struct stat *__restrict __buf, int __flag) > throw () __attribute__ ((__nonnull__ (2, 3))); ># 252 "/usr/include/sys/stat.h" 3 4 >extern int fstatat64 (int __fd, __const char *__restrict __file, > struct stat64 *__restrict __buf, int __flag) > throw () __attribute__ ((__nonnull__ (2, 3))); > > > > > > >extern int lstat (__const char *__restrict __file, > struct stat *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); ># 274 "/usr/include/sys/stat.h" 3 4 >extern int lstat64 (__const char *__restrict __file, > struct stat64 *__restrict __buf) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int chmod (__const char *__file, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int lchmod (__const char *__file, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int fchmod (int __fd, __mode_t __mode) throw (); > > > > > >extern int fchmodat (int __fd, __const char *__file, __mode_t mode, int __flag) > throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); > > > > > > >extern __mode_t umask (__mode_t __mask) throw (); > > > > >extern __mode_t getumask (void) throw (); > > > >extern int mkdir (__const char *__path, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int mkdirat (int __fd, __const char *__path, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (2))); > > > > > > >extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int mknodat (int __fd, __const char *__path, __mode_t __mode, > __dev_t __dev) throw () __attribute__ ((__nonnull__ (2))); > > > > >extern int mkfifo (__const char *__path, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (2))); > > > > > >extern int utimensat (int __fd, __const char *__path, > __const struct timespec __times[2], > int __flags) > throw () __attribute__ ((__nonnull__ (2))); > > > > > >extern int futimens (int __fd, __const struct timespec __times[2]) throw (); ># 397 "/usr/include/sys/stat.h" 3 4 >extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) > throw () __attribute__ ((__nonnull__ (3))); >extern int __xstat (int __ver, __const char *__filename, > struct stat *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); >extern int __lxstat (int __ver, __const char *__filename, > struct stat *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); >extern int __fxstatat (int __ver, int __fildes, __const char *__filename, > struct stat *__stat_buf, int __flag) > throw () __attribute__ ((__nonnull__ (3, 4))); ># 430 "/usr/include/sys/stat.h" 3 4 >extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) > throw () __attribute__ ((__nonnull__ (3))); >extern int __xstat64 (int __ver, __const char *__filename, > struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); >extern int __lxstat64 (int __ver, __const char *__filename, > struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); >extern int __fxstatat64 (int __ver, int __fildes, __const char *__filename, > struct stat64 *__stat_buf, int __flag) > throw () __attribute__ ((__nonnull__ (3, 4))); > >extern int __xmknod (int __ver, __const char *__path, __mode_t __mode, > __dev_t *__dev) throw () __attribute__ ((__nonnull__ (2, 4))); > >extern int __xmknodat (int __ver, int __fd, __const char *__path, > __mode_t __mode, __dev_t *__dev) > throw () __attribute__ ((__nonnull__ (3, 5))); > > > > >extern __inline __attribute__ ((__gnu_inline__)) int >stat (__const char *__path, struct stat *__statbuf) throw () >{ > return __xstat (3, __path, __statbuf); >} > > >extern __inline __attribute__ ((__gnu_inline__)) int >lstat (__const char *__path, struct stat *__statbuf) throw () >{ > return __lxstat (3, __path, __statbuf); >} > > >extern __inline __attribute__ ((__gnu_inline__)) int >fstat (int __fd, struct stat *__statbuf) throw () >{ > return __fxstat (3, __fd, __statbuf); >} > > >extern __inline __attribute__ ((__gnu_inline__)) int >fstatat (int __fd, __const char *__filename, struct stat *__statbuf, int __flag) throw () > >{ > return __fxstatat (3, __fd, __filename, __statbuf, __flag); >} > > > >extern __inline __attribute__ ((__gnu_inline__)) int >mknod (__const char *__path, __mode_t __mode, __dev_t __dev) throw () >{ > return __xmknod (1, __path, __mode, &__dev); >} > > > >extern __inline __attribute__ ((__gnu_inline__)) int >mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev) throw () > >{ > return __xmknodat (1, __fd, __path, __mode, &__dev); >} > > > > > >extern __inline __attribute__ ((__gnu_inline__)) int >stat64 (__const char *__path, struct stat64 *__statbuf) throw () >{ > return __xstat64 (3, __path, __statbuf); >} > > >extern __inline __attribute__ ((__gnu_inline__)) int >lstat64 (__const char *__path, struct stat64 *__statbuf) throw () >{ > return __lxstat64 (3, __path, __statbuf); >} > > >extern __inline __attribute__ ((__gnu_inline__)) int >fstat64 (int __fd, struct stat64 *__statbuf) throw () >{ > return __fxstat64 (3, __fd, __statbuf); >} > > >extern __inline __attribute__ ((__gnu_inline__)) int >fstatat64 (int __fd, __const char *__filename, struct stat64 *__statbuf, int __flag) throw () > >{ > return __fxstatat64 (3, __fd, __filename, __statbuf, __flag); >} > > > > > > >} ># 57 "../condor_includes/condor_fix_sys_stat.h" 2 ># 45 "../condor_includes/condor_sys_linux.h" 2 ># 1 "../condor_includes/condor_fix_unistd.h" 1 ># 63 "../condor_includes/condor_fix_unistd.h" ># 1 "/usr/include/unistd.h" 1 3 4 ># 28 "/usr/include/unistd.h" 3 4 >extern "C" { ># 173 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/bits/posix_opt.h" 1 3 4 ># 174 "/usr/include/unistd.h" 2 3 4 > > > ># 1 "/usr/include/bits/environments.h" 1 3 4 ># 178 "/usr/include/unistd.h" 2 3 4 ># 197 "/usr/include/unistd.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 198 "/usr/include/unistd.h" 2 3 4 ># 238 "/usr/include/unistd.h" 3 4 >typedef __intptr_t intptr_t; > > > > > > >typedef __socklen_t socklen_t; ># 258 "/usr/include/unistd.h" 3 4 >extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int euidaccess (__const char *__name, int __type) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int eaccess (__const char *__name, int __type) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int faccessat (int __fd, __const char *__file, int __type, int __flag) > throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); ># 301 "/usr/include/unistd.h" 3 4 >extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw (); ># 312 "/usr/include/unistd.h" 3 4 >extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) > throw (); > > > > > > >extern int close (int __fd); > > > > > > >extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__)); > > > > > >extern ssize_t write (int __fd, __const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__)); ># 343 "/usr/include/unistd.h" 3 4 >extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, > __off_t __offset) __attribute__ ((__warn_unused_result__)); > > > > > > >extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, > __off_t __offset) __attribute__ ((__warn_unused_result__)); ># 371 "/usr/include/unistd.h" 3 4 >extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset) __attribute__ ((__warn_unused_result__)); > > >extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, > __off64_t __offset) __attribute__ ((__warn_unused_result__)); > > > > > > > >extern int pipe (int __pipedes[2]) throw () __attribute__ ((__warn_unused_result__)); ># 393 "/usr/include/unistd.h" 3 4 >extern unsigned int alarm (unsigned int __seconds) throw (); ># 405 "/usr/include/unistd.h" 3 4 >extern unsigned int sleep (unsigned int __seconds); > > > > > > >extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) > throw (); > > > > > > >extern int usleep (__useconds_t __useconds); ># 429 "/usr/include/unistd.h" 3 4 >extern int pause (void); > > > >extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > >extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () __attribute__ ((__warn_unused_result__)); > > > > >extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > > >extern int fchownat (int __fd, __const char *__file, __uid_t __owner, > __gid_t __group, int __flag) > throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); > > > >extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > >extern int fchdir (int __fd) throw () __attribute__ ((__warn_unused_result__)); ># 471 "/usr/include/unistd.h" 3 4 >extern char *getcwd (char *__buf, size_t __size) throw () __attribute__ ((__warn_unused_result__)); > > > > > >extern char *get_current_dir_name (void) throw (); > > > > > > >extern char *getwd (char *__buf) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)); > > > > >extern int dup (int __fd) throw () __attribute__ ((__warn_unused_result__)); > > >extern int dup2 (int __fd, int __fd2) throw (); > > >extern char **__environ; > >extern char **environ; > > > > > >extern int execve (__const char *__path, char *__const __argv[], > char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) > throw (); > > > > >extern int execv (__const char *__path, char *__const __argv[]) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execle (__const char *__path, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execl (__const char *__path, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execvp (__const char *__file, char *__const __argv[]) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int execlp (__const char *__file, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int nice (int __inc) throw () __attribute__ ((__warn_unused_result__)); > > > > >extern void _exit (int __status) __attribute__ ((__noreturn__)); > > > > > ># 1 "/usr/include/bits/confname.h" 1 3 4 ># 26 "/usr/include/bits/confname.h" 3 4 >enum > { > _PC_LINK_MAX, > > _PC_MAX_CANON, > > _PC_MAX_INPUT, > > _PC_NAME_MAX, > > _PC_PATH_MAX, > > _PC_PIPE_BUF, > > _PC_CHOWN_RESTRICTED, > > _PC_NO_TRUNC, > > _PC_VDISABLE, > > _PC_SYNC_IO, > > _PC_ASYNC_IO, > > _PC_PRIO_IO, > > _PC_SOCK_MAXBUF, > > _PC_FILESIZEBITS, > > _PC_REC_INCR_XFER_SIZE, > > _PC_REC_MAX_XFER_SIZE, > > _PC_REC_MIN_XFER_SIZE, > > _PC_REC_XFER_ALIGN, > > _PC_ALLOC_SIZE_MIN, > > _PC_SYMLINK_MAX, > > _PC_2_SYMLINKS > > }; > > >enum > { > _SC_ARG_MAX, > > _SC_CHILD_MAX, > > _SC_CLK_TCK, > > _SC_NGROUPS_MAX, > > _SC_OPEN_MAX, > > _SC_STREAM_MAX, > > _SC_TZNAME_MAX, > > _SC_JOB_CONTROL, > > _SC_SAVED_IDS, > > _SC_REALTIME_SIGNALS, > > _SC_PRIORITY_SCHEDULING, > > _SC_TIMERS, > > _SC_ASYNCHRONOUS_IO, > > _SC_PRIORITIZED_IO, > > _SC_SYNCHRONIZED_IO, > > _SC_FSYNC, > > _SC_MAPPED_FILES, > > _SC_MEMLOCK, > > _SC_MEMLOCK_RANGE, > > _SC_MEMORY_PROTECTION, > > _SC_MESSAGE_PASSING, > > _SC_SEMAPHORES, > > _SC_SHARED_MEMORY_OBJECTS, > > _SC_AIO_LISTIO_MAX, > > _SC_AIO_MAX, > > _SC_AIO_PRIO_DELTA_MAX, > > _SC_DELAYTIMER_MAX, > > _SC_MQ_OPEN_MAX, > > _SC_MQ_PRIO_MAX, > > _SC_VERSION, > > _SC_PAGESIZE, > > > _SC_RTSIG_MAX, > > _SC_SEM_NSEMS_MAX, > > _SC_SEM_VALUE_MAX, > > _SC_SIGQUEUE_MAX, > > _SC_TIMER_MAX, > > > > > _SC_BC_BASE_MAX, > > _SC_BC_DIM_MAX, > > _SC_BC_SCALE_MAX, > > _SC_BC_STRING_MAX, > > _SC_COLL_WEIGHTS_MAX, > > _SC_EQUIV_CLASS_MAX, > > _SC_EXPR_NEST_MAX, > > _SC_LINE_MAX, > > _SC_RE_DUP_MAX, > > _SC_CHARCLASS_NAME_MAX, > > > _SC_2_VERSION, > > _SC_2_C_BIND, > > _SC_2_C_DEV, > > _SC_2_FORT_DEV, > > _SC_2_FORT_RUN, > > _SC_2_SW_DEV, > > _SC_2_LOCALEDEF, > > > _SC_PII, > > _SC_PII_XTI, > > _SC_PII_SOCKET, > > _SC_PII_INTERNET, > > _SC_PII_OSI, > > _SC_POLL, > > _SC_SELECT, > > _SC_UIO_MAXIOV, > > _SC_IOV_MAX = _SC_UIO_MAXIOV, > > _SC_PII_INTERNET_STREAM, > > _SC_PII_INTERNET_DGRAM, > > _SC_PII_OSI_COTS, > > _SC_PII_OSI_CLTS, > > _SC_PII_OSI_M, > > _SC_T_IOV_MAX, > > > > _SC_THREADS, > > _SC_THREAD_SAFE_FUNCTIONS, > > _SC_GETGR_R_SIZE_MAX, > > _SC_GETPW_R_SIZE_MAX, > > _SC_LOGIN_NAME_MAX, > > _SC_TTY_NAME_MAX, > > _SC_THREAD_DESTRUCTOR_ITERATIONS, > > _SC_THREAD_KEYS_MAX, > > _SC_THREAD_STACK_MIN, > > _SC_THREAD_THREADS_MAX, > > _SC_THREAD_ATTR_STACKADDR, > > _SC_THREAD_ATTR_STACKSIZE, > > _SC_THREAD_PRIORITY_SCHEDULING, > > _SC_THREAD_PRIO_INHERIT, > > _SC_THREAD_PRIO_PROTECT, > > _SC_THREAD_PROCESS_SHARED, > > > _SC_NPROCESSORS_CONF, > > _SC_NPROCESSORS_ONLN, > > _SC_PHYS_PAGES, > > _SC_AVPHYS_PAGES, > > _SC_ATEXIT_MAX, > > _SC_PASS_MAX, > > > _SC_XOPEN_VERSION, > > _SC_XOPEN_XCU_VERSION, > > _SC_XOPEN_UNIX, > > _SC_XOPEN_CRYPT, > > _SC_XOPEN_ENH_I18N, > > _SC_XOPEN_SHM, > > > _SC_2_CHAR_TERM, > > _SC_2_C_VERSION, > > _SC_2_UPE, > > > _SC_XOPEN_XPG2, > > _SC_XOPEN_XPG3, > > _SC_XOPEN_XPG4, > > > _SC_CHAR_BIT, > > _SC_CHAR_MAX, > > _SC_CHAR_MIN, > > _SC_INT_MAX, > > _SC_INT_MIN, > > _SC_LONG_BIT, > > _SC_WORD_BIT, > > _SC_MB_LEN_MAX, > > _SC_NZERO, > > _SC_SSIZE_MAX, > > _SC_SCHAR_MAX, > > _SC_SCHAR_MIN, > > _SC_SHRT_MAX, > > _SC_SHRT_MIN, > > _SC_UCHAR_MAX, > > _SC_UINT_MAX, > > _SC_ULONG_MAX, > > _SC_USHRT_MAX, > > > _SC_NL_ARGMAX, > > _SC_NL_LANGMAX, > > _SC_NL_MSGMAX, > > _SC_NL_NMAX, > > _SC_NL_SETMAX, > > _SC_NL_TEXTMAX, > > > _SC_XBS5_ILP32_OFF32, > > _SC_XBS5_ILP32_OFFBIG, > > _SC_XBS5_LP64_OFF64, > > _SC_XBS5_LPBIG_OFFBIG, > > > _SC_XOPEN_LEGACY, > > _SC_XOPEN_REALTIME, > > _SC_XOPEN_REALTIME_THREADS, > > > _SC_ADVISORY_INFO, > > _SC_BARRIERS, > > _SC_BASE, > > _SC_C_LANG_SUPPORT, > > _SC_C_LANG_SUPPORT_R, > > _SC_CLOCK_SELECTION, > > _SC_CPUTIME, > > _SC_THREAD_CPUTIME, > > _SC_DEVICE_IO, > > _SC_DEVICE_SPECIFIC, > > _SC_DEVICE_SPECIFIC_R, > > _SC_FD_MGMT, > > _SC_FIFO, > > _SC_PIPE, > > _SC_FILE_ATTRIBUTES, > > _SC_FILE_LOCKING, > > _SC_FILE_SYSTEM, > > _SC_MONOTONIC_CLOCK, > > _SC_MULTI_PROCESS, > > _SC_SINGLE_PROCESS, > > _SC_NETWORKING, > > _SC_READER_WRITER_LOCKS, > > _SC_SPIN_LOCKS, > > _SC_REGEXP, > > _SC_REGEX_VERSION, > > _SC_SHELL, > > _SC_SIGNALS, > > _SC_SPAWN, > > _SC_SPORADIC_SERVER, > > _SC_THREAD_SPORADIC_SERVER, > > _SC_SYSTEM_DATABASE, > > _SC_SYSTEM_DATABASE_R, > > _SC_TIMEOUTS, > > _SC_TYPED_MEMORY_OBJECTS, > > _SC_USER_GROUPS, > > _SC_USER_GROUPS_R, > > _SC_2_PBS, > > _SC_2_PBS_ACCOUNTING, > > _SC_2_PBS_LOCATE, > > _SC_2_PBS_MESSAGE, > > _SC_2_PBS_TRACK, > > _SC_SYMLOOP_MAX, > > _SC_STREAMS, > > _SC_2_PBS_CHECKPOINT, > > > _SC_V6_ILP32_OFF32, > > _SC_V6_ILP32_OFFBIG, > > _SC_V6_LP64_OFF64, > > _SC_V6_LPBIG_OFFBIG, > > > _SC_HOST_NAME_MAX, > > _SC_TRACE, > > _SC_TRACE_EVENT_FILTER, > > _SC_TRACE_INHERIT, > > _SC_TRACE_LOG, > > > _SC_LEVEL1_ICACHE_SIZE, > > _SC_LEVEL1_ICACHE_ASSOC, > > _SC_LEVEL1_ICACHE_LINESIZE, > > _SC_LEVEL1_DCACHE_SIZE, > > _SC_LEVEL1_DCACHE_ASSOC, > > _SC_LEVEL1_DCACHE_LINESIZE, > > _SC_LEVEL2_CACHE_SIZE, > > _SC_LEVEL2_CACHE_ASSOC, > > _SC_LEVEL2_CACHE_LINESIZE, > > _SC_LEVEL3_CACHE_SIZE, > > _SC_LEVEL3_CACHE_ASSOC, > > _SC_LEVEL3_CACHE_LINESIZE, > > _SC_LEVEL4_CACHE_SIZE, > > _SC_LEVEL4_CACHE_ASSOC, > > _SC_LEVEL4_CACHE_LINESIZE, > > > > _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, > > _SC_RAW_SOCKETS > > }; > > >enum > { > _CS_PATH, > > > _CS_V6_WIDTH_RESTRICTED_ENVS, > > > > _CS_GNU_LIBC_VERSION, > > _CS_GNU_LIBPTHREAD_VERSION, > > > _CS_LFS_CFLAGS = 1000, > > _CS_LFS_LDFLAGS, > > _CS_LFS_LIBS, > > _CS_LFS_LINTFLAGS, > > _CS_LFS64_CFLAGS, > > _CS_LFS64_LDFLAGS, > > _CS_LFS64_LIBS, > > _CS_LFS64_LINTFLAGS, > > > _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, > > _CS_XBS5_ILP32_OFF32_LDFLAGS, > > _CS_XBS5_ILP32_OFF32_LIBS, > > _CS_XBS5_ILP32_OFF32_LINTFLAGS, > > _CS_XBS5_ILP32_OFFBIG_CFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LDFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LIBS, > > _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, > > _CS_XBS5_LP64_OFF64_CFLAGS, > > _CS_XBS5_LP64_OFF64_LDFLAGS, > > _CS_XBS5_LP64_OFF64_LIBS, > > _CS_XBS5_LP64_OFF64_LINTFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_CFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LIBS, > > _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_POSIX_V6_ILP32_OFF32_CFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LIBS, > > _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LIBS, > > _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, > > _CS_POSIX_V6_LP64_OFF64_CFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LDFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LIBS, > > _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS > > }; ># 555 "/usr/include/unistd.h" 2 3 4 > > >extern long int pathconf (__const char *__path, int __name) > throw () __attribute__ ((__nonnull__ (1))); > > >extern long int fpathconf (int __fd, int __name) throw (); > > >extern long int sysconf (int __name) throw (); > > > >extern size_t confstr (int __name, char *__buf, size_t __len) throw (); > > > > >extern __pid_t getpid (void) throw (); > > >extern __pid_t getppid (void) throw (); > > > > >extern __pid_t getpgrp (void) throw (); ># 591 "/usr/include/unistd.h" 3 4 >extern __pid_t __getpgid (__pid_t __pid) throw (); > >extern __pid_t getpgid (__pid_t __pid) throw (); > > > > > > >extern int setpgid (__pid_t __pid, __pid_t __pgid) throw (); ># 617 "/usr/include/unistd.h" 3 4 >extern int setpgrp (void) throw (); ># 634 "/usr/include/unistd.h" 3 4 >extern __pid_t setsid (void) throw (); > > > >extern __pid_t getsid (__pid_t __pid) throw (); > > > >extern __uid_t getuid (void) throw (); > > >extern __uid_t geteuid (void) throw (); > > >extern __gid_t getgid (void) throw (); > > >extern __gid_t getegid (void) throw (); > > > > >extern int getgroups (int __size, __gid_t __list[]) throw () __attribute__ ((__warn_unused_result__)); > > > >extern int group_member (__gid_t __gid) throw (); > > > > > > >extern int setuid (__uid_t __uid) throw (); > > > > >extern int setreuid (__uid_t __ruid, __uid_t __euid) throw (); > > > > >extern int seteuid (__uid_t __uid) throw (); > > > > > > >extern int setgid (__gid_t __gid) throw (); > > > > >extern int setregid (__gid_t __rgid, __gid_t __egid) throw (); > > > > >extern int setegid (__gid_t __gid) throw (); > > > > > >extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) > throw (); > > > >extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) > throw (); > > > >extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) > throw (); > > > >extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) > throw (); > > > > > > >extern __pid_t fork (void) throw (); > > > > > > >extern __pid_t vfork (void) throw (); > > > > > >extern char *ttyname (int __fd) throw (); > > > >extern int ttyname_r (int __fd, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); > > > >extern int isatty (int __fd) throw (); > > > > > >extern int ttyslot (void) throw (); > > > > >extern int link (__const char *__from, __const char *__to) > throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); > > > > >extern int linkat (int __fromfd, __const char *__from, int __tofd, > __const char *__to, int __flags) > throw () __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__)); > > > > >extern int symlink (__const char *__from, __const char *__to) > throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); > > > > >extern ssize_t readlink (__const char *__restrict __path, > char *__restrict __buf, size_t __len) > throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); > > > > >extern int symlinkat (__const char *__from, int __tofd, > __const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); > > >extern ssize_t readlinkat (int __fd, __const char *__restrict __path, > char *__restrict __buf, size_t __len) > throw () __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); > > > >extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); > > > >extern int unlinkat (int __fd, __const char *__name, int __flag) > throw () __attribute__ ((__nonnull__ (2))); > > > >extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))); > > > >extern __pid_t tcgetpgrp (int __fd) throw (); > > >extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw (); > > > > > > >extern char *getlogin (void); > > > > > > > >extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); > > > > >extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); ># 837 "/usr/include/unistd.h" 3 4 ># 1 "../h/getopt.h" 1 3 4 ># 30 "../h/getopt.h" 3 4 >extern "C" { > > ># 1 "../h/my_getopt.h" 1 3 4 ># 30 "../h/my_getopt.h" 3 4 >extern "C" { > > > >extern int my_getopt(int argc, char * argv[], const char *opts); > >extern int my_optind, my_opterr, my_optopt; >extern char *my_optarg; > >struct option { > const char *name; > int has_arg; > int *flag; > int val; >}; ># 55 "../h/my_getopt.h" 3 4 >extern int my_getopt_long(int argc, char * argv[], const char *shortopts, > const struct option *longopts, int *longind); > >extern int my_getopt_long_only(int argc, char * argv[], const char *shortopts, > const struct option *longopts, int *longind); > >extern int _my_getopt_internal(int argc, char * argv[], const char *shortopts, > const struct option *longopts, int *longind, > int long_only); > > >} ># 34 "../h/getopt.h" 2 3 4 ># 53 "../h/getopt.h" 3 4 >} ># 838 "/usr/include/unistd.h" 2 3 4 > > > > > > > >extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sethostname (__const char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > >extern int sethostid (long int __id) throw () __attribute__ ((__warn_unused_result__)); > > > > > >extern int getdomainname (char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); >extern int setdomainname (__const char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >extern int vhangup (void) throw (); > > >extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > > > >extern int _hide_profil (unsigned short int *__sample_buffer, size_t __size, > size_t __offset, unsigned int __scale) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int acct (__const char *__name) throw (); > > > >extern char *getusershell (void) throw (); >extern void endusershell (void) throw (); >extern void setusershell (void) throw (); > > > > > >extern int _hide_daemon (int __nochdir, int __noclose) throw () __attribute__ ((__warn_unused_result__)); > > > > > > >extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > >extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); ># 923 "/usr/include/unistd.h" 3 4 >extern int fsync (int __fd); > > > > > > >extern long int gethostid (void); > > >extern void sync (void) throw (); > > > > >extern int getpagesize (void) throw () __attribute__ ((__const__)); > > > > >extern int getdtablesize (void) throw (); > > > > >extern int truncate (__const char *__file, __off_t __length) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 960 "/usr/include/unistd.h" 3 4 >extern int truncate64 (__const char *__file, __off64_t __length) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 970 "/usr/include/unistd.h" 3 4 >extern int ftruncate (int __fd, __off_t __length) throw () __attribute__ ((__warn_unused_result__)); ># 980 "/usr/include/unistd.h" 3 4 >extern int ftruncate64 (int __fd, __off64_t __length) throw () __attribute__ ((__warn_unused_result__)); ># 990 "/usr/include/unistd.h" 3 4 >extern int brk (void *__addr) throw () __attribute__ ((__warn_unused_result__)); > > > > > >extern void *sbrk (intptr_t __delta) throw (); ># 1011 "/usr/include/unistd.h" 3 4 >extern long int syscall (long int __sysno, ...) throw (); ># 1034 "/usr/include/unistd.h" 3 4 >extern int lockf (int __fd, int __cmd, __off_t __len) __attribute__ ((__warn_unused_result__)); ># 1044 "/usr/include/unistd.h" 3 4 >extern int lockf64 (int __fd, int __cmd, __off64_t __len) __attribute__ ((__warn_unused_result__)); ># 1065 "/usr/include/unistd.h" 3 4 >extern int fdatasync (int __fildes); > > > > > > > >extern char *crypt (__const char *__key, __const char *__salt) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern void swab (__const void *__restrict __from, void *__restrict __to, > ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > > >extern char *ctermid (char *__s) throw (); > > > > > ># 1 "/usr/include/bits/unistd.h" 1 3 4 ># 24 "/usr/include/bits/unistd.h" 3 4 >extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes, > size_t __buflen) __attribute__ ((__warn_unused_result__)); >extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read") __attribute__ ((__warn_unused_result__)); > >extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk") > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t >read (int __fd, void *__buf, size_t __nbytes) >{ > if (__builtin_object_size (__buf, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__nbytes)) > return __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); > > if (__nbytes > __builtin_object_size (__buf, 0)) > return __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); > } > return __read_alias (__fd, __buf, __nbytes); >} > > >extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes, > __off_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__)); >extern ssize_t __pread64_chk (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__)); >extern ssize_t __pread_alias (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __asm__ ("" "pread") __attribute__ ((__warn_unused_result__)); > > >extern ssize_t __pread64_alias (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") __attribute__ ((__warn_unused_result__)); > > >extern ssize_t __pread_chk_warn (int __fd, void *__buf, size_t __nbytes, __off_t __offset, size_t __bufsize) __asm__ ("" "__pread_chk") > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread called with bigger length than size of " "the destination buffer"))); > >extern ssize_t __pread64_chk_warn (int __fd, void *__buf, size_t __nbytes, __off64_t __offset, size_t __bufsize) __asm__ ("" "__pread64_chk") > > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread64 called with bigger length than size of " "the destination buffer"))); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t >pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) >{ > if (__builtin_object_size (__buf, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__nbytes)) > return __pread_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); > > if ( __nbytes > __builtin_object_size (__buf, 0)) > return __pread_chk_warn (__fd, __buf, __nbytes, __offset, > __builtin_object_size (__buf, 0)); > } > return __pread_alias (__fd, __buf, __nbytes, __offset); >} ># 105 "/usr/include/bits/unistd.h" 3 4 >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t >pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) >{ > if (__builtin_object_size (__buf, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__nbytes)) > return __pread64_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); > > if ( __nbytes > __builtin_object_size (__buf, 0)) > return __pread64_chk_warn (__fd, __buf, __nbytes, __offset, > __builtin_object_size (__buf, 0)); > } > > return __pread64_alias (__fd, __buf, __nbytes, __offset); >} > > > > >extern ssize_t __readlink_chk (__const char *__restrict __path, > char *__restrict __buf, size_t __len, > size_t __buflen) > throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); >extern ssize_t __readlink_alias (__const char *__restrict __path, char *__restrict __buf, size_t __len) throw () __asm__ ("" "readlink") > > > __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); >extern ssize_t __readlink_chk_warn (__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) throw () __asm__ ("" "__readlink_chk") > > > > __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t >readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) throw () > >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); > > if ( __len > __builtin_object_size (__buf, 2 > 1)) > return __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); > } > return __readlink_alias (__path, __buf, __len); >} > > > >extern ssize_t __readlinkat_chk (int __fd, __const char *__restrict __path, > char *__restrict __buf, size_t __len, > size_t __buflen) > throw () __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); >extern ssize_t __readlinkat_alias (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) throw () __asm__ ("" "readlinkat") > > > > __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); >extern ssize_t __readlinkat_chk_warn (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) throw () __asm__ ("" "__readlinkat_chk") > > > > __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer"))); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t >readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) throw () > >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); > > if (__len > __builtin_object_size (__buf, 2 > 1)) > return __readlinkat_chk_warn (__fd, __path, __buf, __len, > __builtin_object_size (__buf, 2 > 1)); > } > return __readlinkat_alias (__fd, __path, __buf, __len); >} > > >extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen) > throw () __attribute__ ((__warn_unused_result__)); >extern char *__getcwd_alias (char *__buf, size_t __size) throw () __asm__ ("" "getcwd") __attribute__ ((__warn_unused_result__)); > >extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) throw () __asm__ ("" "__getcwd_chk") > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char * >getcwd (char *__buf, size_t __size) throw () >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__size)) > return __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1)); > > if (__size > __builtin_object_size (__buf, 2 > 1)) > return __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1)); > } > return __getcwd_alias (__buf, __size); >} > > >extern char *__getwd_chk (char *__buf, size_t buflen) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); >extern char *__getwd_warn (char *__buf) throw () __asm__ ("" "getwd") > __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char * >getwd (char *__buf) throw () >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1)); > return __getwd_warn (__buf); >} > > >extern size_t __confstr_chk (int __name, char *__buf, size_t __len, > size_t __buflen) throw (); >extern size_t __confstr_alias (int __name, char *__buf, size_t __len) throw () __asm__ ("" "confstr"); > >extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) throw () __asm__ ("" "__confstr_chk") > > > __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t >confstr (int __name, char *__buf, size_t __len) throw () >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); > > if (__builtin_object_size (__buf, 2 > 1) < __len) > return __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); > } > return __confstr_alias (__name, __buf, __len); >} > > >extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen) > throw () __attribute__ ((__warn_unused_result__)); >extern int __getgroups_alias (int __size, __gid_t __list[]) throw () __asm__ ("" "getgroups") __attribute__ ((__warn_unused_result__)); > >extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) throw () __asm__ ("" "__getgroups_chk") > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >getgroups (int __size, __gid_t __list[]) throw () >{ > if (__builtin_object_size (__list, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__size)) > return __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1)); > > if (__size * sizeof (__gid_t) > __builtin_object_size (__list, 2 > 1)) > return __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1)); > } > return __getgroups_alias (__size, __list); >} > > >extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen, > size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); >extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ttyname_r") > > __attribute__ ((__nonnull__ (2))); >extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ttyname_r_chk") > > > __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >ttyname_r (int __fd, char *__buf, size_t __buflen) throw () >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__buflen)) > return __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > > if (__buflen > __builtin_object_size (__buf, 2 > 1)) > return __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > } > return __ttyname_r_alias (__fd, __buf, __buflen); >} > > > >extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal) > __attribute__ ((__nonnull__ (1))); >extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r") __attribute__ ((__nonnull__ (1))); > >extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk") > > > __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >getlogin_r (char *__buf, size_t __buflen) >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__buflen)) > return __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > > if (__buflen > __builtin_object_size (__buf, 2 > 1)) > return __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > } > return __getlogin_r_alias (__buf, __buflen); >} > > > > >extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal) > throw () __attribute__ ((__nonnull__ (1))); >extern int __gethostname_alias (char *__buf, size_t __buflen) throw () __asm__ ("" "gethostname") __attribute__ ((__nonnull__ (1))); > >extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__gethostname_chk") > > > __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >gethostname (char *__buf, size_t __buflen) throw () >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__buflen)) > return __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > > if (__buflen > __builtin_object_size (__buf, 2 > 1)) > return __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > } > return __gethostname_alias (__buf, __buflen); >} > > > > >extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); >extern int __getdomainname_alias (char *__buf, size_t __buflen) throw () __asm__ ("" "getdomainname") __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > >extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__getdomainname_chk") > > > __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer"))); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >getdomainname (char *__buf, size_t __buflen) throw () >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__buflen)) > return __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > > if (__buflen > __builtin_object_size (__buf, 2 > 1)) > return __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > } > return __getdomainname_alias (__buf, __buflen); >} ># 1101 "/usr/include/unistd.h" 2 3 4 > > >} ># 64 "../condor_includes/condor_fix_unistd.h" 2 ># 126 "../condor_includes/condor_fix_unistd.h" >extern "C" { ># 157 "../condor_includes/condor_fix_unistd.h" > int profil( char*, int, int, int ); > > > >} ># 46 "../condor_includes/condor_sys_linux.h" 2 ># 55 "../condor_includes/condor_sys_linux.h" ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stdarg.h" 1 3 4 ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stdarg.h" 3 4 >typedef __builtin_va_list __gnuc_va_list; ># 105 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stdarg.h" 3 4 >typedef __gnuc_va_list va_list; ># 56 "../condor_includes/condor_sys_linux.h" 2 > > > > > > > ># 1 "/usr/include/stdio.h" 1 3 4 ># 30 "/usr/include/stdio.h" 3 4 >extern "C" { > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 35 "/usr/include/stdio.h" 2 3 4 ># 45 "/usr/include/stdio.h" 3 4 >struct _IO_FILE; > > > >typedef struct _IO_FILE FILE; > > > > > ># 65 "/usr/include/stdio.h" 3 4 >typedef struct _IO_FILE __FILE; ># 75 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/libio.h" 1 3 4 ># 32 "/usr/include/libio.h" 3 4 ># 1 "/usr/include/_G_config.h" 1 3 4 ># 15 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 16 "/usr/include/_G_config.h" 2 3 4 > > > > ># 1 "/usr/include/wchar.h" 1 3 4 ># 78 "/usr/include/wchar.h" 3 4 >typedef struct >{ > int __count; > union > { > > unsigned int __wch; > > > > char __wchb[4]; > } __value; >} __mbstate_t; ># 21 "/usr/include/_G_config.h" 2 3 4 > >typedef struct >{ > __off_t __pos; > __mbstate_t __state; >} _G_fpos_t; >typedef struct >{ > __off64_t __pos; > __mbstate_t __state; >} _G_fpos64_t; ># 53 "/usr/include/_G_config.h" 3 4 >typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); >typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); ># 33 "/usr/include/libio.h" 2 3 4 ># 170 "/usr/include/libio.h" 3 4 >struct _IO_jump_t; struct _IO_FILE; ># 180 "/usr/include/libio.h" 3 4 >typedef void _IO_lock_t; > > > > > >struct _IO_marker { > struct _IO_marker *_next; > struct _IO_FILE *_sbuf; > > > > int _pos; ># 203 "/usr/include/libio.h" 3 4 >}; > > >enum __codecvt_result >{ > __codecvt_ok, > __codecvt_partial, > __codecvt_error, > __codecvt_noconv >}; ># 271 "/usr/include/libio.h" 3 4 >struct _IO_FILE { > int _flags; > > > > > char* _IO_read_ptr; > char* _IO_read_end; > char* _IO_read_base; > char* _IO_write_base; > char* _IO_write_ptr; > char* _IO_write_end; > char* _IO_buf_base; > char* _IO_buf_end; > > char *_IO_save_base; > char *_IO_backup_base; > char *_IO_save_end; > > struct _IO_marker *_markers; > > struct _IO_FILE *_chain; > > int _fileno; > > > > int _flags2; > > __off_t _old_offset; > > > > unsigned short _cur_column; > signed char _vtable_offset; > char _shortbuf[1]; > > > > _IO_lock_t *_lock; ># 319 "/usr/include/libio.h" 3 4 > __off64_t _offset; ># 328 "/usr/include/libio.h" 3 4 > void *__pad1; > void *__pad2; > void *__pad3; > void *__pad4; > size_t __pad5; > > int _mode; > > char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; > >}; > > > > > >struct _IO_FILE_plus; > >extern struct _IO_FILE_plus _IO_2_1_stdin_; >extern struct _IO_FILE_plus _IO_2_1_stdout_; >extern struct _IO_FILE_plus _IO_2_1_stderr_; ># 364 "/usr/include/libio.h" 3 4 >typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); > > > > > > > >typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, > size_t __n); > > > > > > > >typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); > > >typedef int __io_close_fn (void *__cookie); > > > > >typedef __io_read_fn cookie_read_function_t; >typedef __io_write_fn cookie_write_function_t; >typedef __io_seek_fn cookie_seek_function_t; >typedef __io_close_fn cookie_close_function_t; > > >typedef struct >{ > __io_read_fn *read; > __io_write_fn *write; > __io_seek_fn *seek; > __io_close_fn *close; >} _IO_cookie_io_functions_t; >typedef _IO_cookie_io_functions_t cookie_io_functions_t; > >struct _IO_cookie_file; > > >extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, > void *__cookie, _IO_cookie_io_functions_t __fns); > > > > >extern "C" { > > >extern int __underflow (_IO_FILE *); >extern int __uflow (_IO_FILE *); >extern int __overflow (_IO_FILE *, int); ># 458 "/usr/include/libio.h" 3 4 >extern int _IO_getc (_IO_FILE *__fp); >extern int _IO_putc (int __c, _IO_FILE *__fp); >extern int _IO_feof (_IO_FILE *__fp) throw (); >extern int _IO_ferror (_IO_FILE *__fp) throw (); > >extern int _IO_peekc_locked (_IO_FILE *__fp); > > > > > >extern void _IO_flockfile (_IO_FILE *) throw (); >extern void _IO_funlockfile (_IO_FILE *) throw (); >extern int _IO_ftrylockfile (_IO_FILE *) throw (); ># 488 "/usr/include/libio.h" 3 4 >extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, > __gnuc_va_list, int *__restrict); >extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, > __gnuc_va_list); >extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); >extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); > >extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); >extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); > >extern void _IO_free_backup_area (_IO_FILE *) throw (); ># 550 "/usr/include/libio.h" 3 4 >} ># 76 "/usr/include/stdio.h" 2 3 4 ># 89 "/usr/include/stdio.h" 3 4 > > >typedef _G_fpos_t fpos_t; > > > > > >typedef _G_fpos64_t fpos64_t; ># 141 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 142 "/usr/include/stdio.h" 2 3 4 > > > >extern struct _IO_FILE *stdin; >extern struct _IO_FILE *stdout; >extern struct _IO_FILE *stderr; > > > > > > > > > >extern int remove (__const char *__filename) throw (); > >extern int rename (__const char *__old, __const char *__new) throw (); > > > > >extern int renameat (int __oldfd, __const char *__old, int __newfd, > __const char *__new) throw (); > > > > > > > > >extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__)); ># 184 "/usr/include/stdio.h" 3 4 >extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); > > > >extern char *tmpnam (char *__s) throw () __attribute__ ((__warn_unused_result__)); > > > > > >extern char *tmpnam_r (char *__s) throw () __attribute__ ((__warn_unused_result__)); ># 206 "/usr/include/stdio.h" 3 4 >extern char *tempnam (__const char *__dir, __const char *__pfx) > throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > > > > > > > > >extern int fclose (FILE *__stream); > > > > >extern int fflush (FILE *__stream); > ># 231 "/usr/include/stdio.h" 3 4 >extern int fflush_unlocked (FILE *__stream); ># 241 "/usr/include/stdio.h" 3 4 >extern int fcloseall (void); > > > > > > > > > >extern FILE *fopen (__const char *__restrict __filename, > __const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); > > > > >extern FILE *freopen (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); ># 274 "/usr/include/stdio.h" 3 4 > > >extern FILE *fopen64 (__const char *__restrict __filename, > __const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); >extern FILE *freopen64 (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); > > > > >extern FILE *fdopen (int __fd, __const char *__modes) throw () __attribute__ ((__warn_unused_result__)); > > > > > >extern FILE *fopencookie (void *__restrict __magic_cookie, > __const char *__restrict __modes, > _IO_cookie_io_functions_t __io_funcs) throw () __attribute__ ((__warn_unused_result__)); > > >extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) > throw () __attribute__ ((__warn_unused_result__)); > > > > >extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () __attribute__ ((__warn_unused_result__)); > > > > > > >extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); > > > >extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, > int __modes, size_t __n) throw (); > > > > > >extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, > size_t __size) throw (); > > >extern void setlinebuf (FILE *__stream) throw (); > > > > > > > > >extern int fprintf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int printf (__const char *__restrict __format, ...); > >extern int sprintf (char *__restrict __s, > __const char *__restrict __format, ...) throw (); > > > > > >extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg); > > > > >extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); > >extern int vsprintf (char *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) throw (); > > > > > >extern int snprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, ...) > throw () __attribute__ ((__format__ (__printf__, 3, 4))); > >extern int vsnprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__printf__, 3, 0))); > > > > > > >extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, > __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); >extern int __asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); >extern int asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); > > > > > > > >extern int vdprintf (int __fd, __const char *__restrict __fmt, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__printf__, 2, 0))); >extern int _hide_dprintf (int __fd, __const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > > >extern int fscanf (FILE *__restrict __stream, > __const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); > > > > >extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); > >extern int sscanf (__const char *__restrict __s, > __const char *__restrict __format, ...) throw (); ># 443 "/usr/include/stdio.h" 3 4 > > > > > > > > >extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); > > > > > >extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); > > >extern int vsscanf (__const char *__restrict __s, > __const char *__restrict __format, __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__scanf__, 2, 0))); ># 502 "/usr/include/stdio.h" 3 4 > > > > > > > > > >extern int fgetc (FILE *__stream); >extern int getc (FILE *__stream); > > > > > >extern int getchar (void); > ># 530 "/usr/include/stdio.h" 3 4 >extern int getc_unlocked (FILE *__stream); >extern int getchar_unlocked (void); ># 541 "/usr/include/stdio.h" 3 4 >extern int fgetc_unlocked (FILE *__stream); > > > > > > > > > > > >extern int fputc (int __c, FILE *__stream); >extern int putc (int __c, FILE *__stream); > > > > > >extern int putchar (int __c); > ># 574 "/usr/include/stdio.h" 3 4 >extern int fputc_unlocked (int __c, FILE *__stream); > > > > > > > >extern int putc_unlocked (int __c, FILE *__stream); >extern int putchar_unlocked (int __c); > > > > > > >extern int getw (FILE *__stream); > > >extern int putw (int __w, FILE *__stream); > > > > > > > > >extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) > __attribute__ ((__warn_unused_result__)); > > > > > > >extern char *gets (char *__s) __attribute__ ((__warn_unused_result__)); > ># 620 "/usr/include/stdio.h" 3 4 >extern char *fgets_unlocked (char *__restrict __s, int __n, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); ># 636 "/usr/include/stdio.h" 3 4 >extern __ssize_t __getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern __ssize_t getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); > > > > > > > >extern __ssize_t _hide_getline (char **__restrict __lineptr, > size_t *__restrict __n, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); > > > > > > > > >extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); > > > > > >extern int puts (__const char *__s); > > > > > > >extern int ungetc (int __c, FILE *__stream); > > > > > > >extern size_t fread (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); > > > > >extern size_t fwrite (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __s) __attribute__ ((__warn_unused_result__)); > ># 697 "/usr/include/stdio.h" 3 4 >extern int fputs_unlocked (__const char *__restrict __s, > FILE *__restrict __stream); ># 708 "/usr/include/stdio.h" 3 4 >extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); > > > > > > > > >extern int fseek (FILE *__stream, long int __off, int __whence); > > > > >extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); > > > > >extern void rewind (FILE *__stream); > ># 744 "/usr/include/stdio.h" 3 4 >extern int fseeko (FILE *__stream, __off_t __off, int __whence); > > > > >extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__)); ># 763 "/usr/include/stdio.h" 3 4 > > > > > > >extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); > > > > >extern int fsetpos (FILE *__stream, __const fpos_t *__pos); ># 786 "/usr/include/stdio.h" 3 4 > > > >extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); >extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); >extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); >extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); > > > > >extern void clearerr (FILE *__stream) throw (); > >extern int feof (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); > >extern int ferror (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); > > > > >extern void clearerr_unlocked (FILE *__stream) throw (); >extern int feof_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); >extern int ferror_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); > > > > > > > > >extern void perror (__const char *__s); > > > > > > ># 1 "/usr/include/bits/sys_errlist.h" 1 3 4 ># 27 "/usr/include/bits/sys_errlist.h" 3 4 >extern int sys_nerr; >extern __const char *__const sys_errlist[]; > > >extern int _sys_nerr; >extern __const char *__const _sys_errlist[]; ># 825 "/usr/include/stdio.h" 2 3 4 > > > > >extern int fileno (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); > > > > >extern int fileno_unlocked (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); ># 844 "/usr/include/stdio.h" 3 4 >extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__)); > > > > > >extern int pclose (FILE *__stream); > > > > > >extern char *ctermid (char *__s) throw (); > > > > > >extern char *cuserid (char *__s); > > > > >struct obstack; > > >extern int obstack_printf (struct obstack *__restrict __obstack, > __const char *__restrict __format, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))); >extern int obstack_vprintf (struct obstack *__restrict __obstack, > __const char *__restrict __format, > __gnuc_va_list __args) > throw () __attribute__ ((__format__ (__printf__, 2, 0))); > > > > > > > >extern void flockfile (FILE *__stream) throw (); > > > >extern int ftrylockfile (FILE *__stream) throw () __attribute__ ((__warn_unused_result__)); > > >extern void funlockfile (FILE *__stream) throw (); ># 905 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio.h" 1 3 4 ># 44 "/usr/include/bits/stdio.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) int >getchar (void) >{ > return _IO_getc (stdin); >} > > > > >extern __inline __attribute__ ((__gnu_inline__)) int >fgetc_unlocked (FILE *__fp) >{ > return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > > > > >extern __inline __attribute__ ((__gnu_inline__)) int >getc_unlocked (FILE *__fp) >{ > return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > >extern __inline __attribute__ ((__gnu_inline__)) int >getchar_unlocked (void) >{ > return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); >} > > > > >extern __inline __attribute__ ((__gnu_inline__)) int >putchar (int __c) >{ > return _IO_putc (__c, stdout); >} > > > > >extern __inline __attribute__ ((__gnu_inline__)) int >fputc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > > > > >extern __inline __attribute__ ((__gnu_inline__)) int >putc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > >extern __inline __attribute__ ((__gnu_inline__)) int >putchar_unlocked (int __c) >{ > return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); >} > > > > > >extern __inline __attribute__ ((__gnu_inline__)) __ssize_t >_hide_getline (char **__lineptr, size_t *__n, FILE *__stream) >{ > return __getdelim (__lineptr, __n, '\n', __stream); >} > > > > > >extern __inline __attribute__ ((__gnu_inline__)) int >feof_unlocked (FILE *__stream) throw () >{ > return (((__stream)->_flags & 0x10) != 0); >} > > >extern __inline __attribute__ ((__gnu_inline__)) int >ferror_unlocked (FILE *__stream) throw () >{ > return (((__stream)->_flags & 0x20) != 0); >} ># 906 "/usr/include/stdio.h" 2 3 4 > > ># 1 "/usr/include/bits/stdio2.h" 1 3 4 ># 24 "/usr/include/bits/stdio2.h" 3 4 >extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, > __const char *__restrict __format, ...) throw (); >extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, > __const char *__restrict __format, > __gnuc_va_list __ap) throw (); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >sprintf (char *__restrict __s, __const char *__restrict __fmt, ...) throw () >{ > return __builtin___sprintf_chk (__s, 2 - 1, > __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); >} > > > > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >vsprintf (char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap) throw () > >{ > return __builtin___vsprintf_chk (__s, 2 - 1, > __builtin_object_size (__s, 2 > 1), __fmt, __ap); >} > > > >extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, > size_t __slen, __const char *__restrict __format, > ...) throw (); >extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, > size_t __slen, __const char *__restrict __format, > __gnuc_va_list __ap) throw (); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >snprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...) throw () > >{ > return __builtin___snprintf_chk (__s, __n, 2 - 1, > __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); >} > > > > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >vsnprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap) throw () > >{ > return __builtin___vsnprintf_chk (__s, __n, 2 - 1, > __builtin_object_size (__s, 2 > 1), __fmt, __ap); >} > > > > > >extern int __fprintf_chk (FILE *__restrict __stream, int __flag, > __const char *__restrict __format, ...); >extern int __printf_chk (int __flag, __const char *__restrict __format, ...); >extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, > __const char *__restrict __format, __gnuc_va_list __ap); >extern int __vprintf_chk (int __flag, __const char *__restrict __format, > __gnuc_va_list __ap); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...) >{ > return __fprintf_chk (__stream, 2 - 1, __fmt, > __builtin_va_arg_pack ()); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >printf (__const char *__restrict __fmt, ...) >{ > return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); >} > > > > > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap) >{ > > return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); > > > >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >vfprintf (FILE *__restrict __stream, > __const char *__restrict __fmt, __gnuc_va_list __ap) >{ > return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); >} > > > >extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__)); >extern char *__gets_warn (char *__str) __asm__ ("" "gets") > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char * >gets (char *__str) >{ > if (__builtin_object_size (__str, 2 > 1) != (size_t) -1) > return __gets_chk (__str, __builtin_object_size (__str, 2 > 1)); > return __gets_warn (__str); >} > >extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") __attribute__ ((__warn_unused_result__)); > > >extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char * >fgets (char *__restrict __s, int __n, FILE *__restrict __stream) >{ > if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__n) || __n <= 0) > return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); > > if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) > return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); > } > return __fgets_alias (__s, __n, __stream); >} > >extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, > size_t __size, size_t __n, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") __attribute__ ((__warn_unused_result__)); > > > >extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") > > > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) size_t >fread (void *__restrict __ptr, size_t __size, size_t __n, > FILE *__restrict __stream) >{ > if (__builtin_object_size (__ptr, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__size) > || !__builtin_constant_p (__n) > || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) > return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); > > if (__size * __n > __builtin_object_size (__ptr, 0)) > return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); > } > return __fread_alias (__ptr, __size, __n, __stream); >} > > >extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, > int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") __attribute__ ((__warn_unused_result__)); > > >extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char * >fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) >{ > if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__n) || __n <= 0) > return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); > > if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) > return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); > } > return __fgets_unlocked_alias (__s, __n, __stream); >} > > > > >extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, > size_t __size, size_t __n, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") __attribute__ ((__warn_unused_result__)); > > > >extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk") > > > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) size_t >fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, > FILE *__restrict __stream) >{ > if (__builtin_object_size (__ptr, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__size) > || !__builtin_constant_p (__n) > || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) > return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, > __stream); > > if (__size * __n > __builtin_object_size (__ptr, 0)) > return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, > __stream); > } > > > if (__builtin_constant_p (__size) > && __builtin_constant_p (__n) > && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) > && __size * __n <= 8) > { > size_t __cnt = __size * __n; > char *__cptr = (char *) __ptr; > if (__cnt == 0) > return 0; > > for (; __cnt > 0; --__cnt) > { > int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); > if (__c == (-1)) > break; > *__cptr++ = __c; > } > return (__cptr - (char *) __ptr) / __size; > } > > return __fread_unlocked_alias (__ptr, __size, __n, __stream); >} ># 909 "/usr/include/stdio.h" 2 3 4 > > > > > >} ># 64 "../condor_includes/condor_sys_linux.h" 2 > > > > > > ># 1 "/usr/include/signal.h" 1 3 4 ># 31 "/usr/include/signal.h" 3 4 >extern "C" { > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 104 "/usr/include/bits/sigset.h" 3 4 >extern int __sigismember (__const __sigset_t *, int); >extern int __sigaddset (__sigset_t *, int); >extern int __sigdelset (__sigset_t *, int); ># 118 "/usr/include/bits/sigset.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; } >extern __inline __attribute__ ((__gnu_inline__)) int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); } >extern __inline __attribute__ ((__gnu_inline__)) int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); } ># 34 "/usr/include/signal.h" 2 3 4 > > > > > > > >typedef __sig_atomic_t sig_atomic_t; > ># 58 "/usr/include/signal.h" 3 4 ># 1 "/usr/include/bits/signum.h" 1 3 4 ># 59 "/usr/include/signal.h" 2 3 4 ># 75 "/usr/include/signal.h" 3 4 >typedef void (*__sighandler_t) (int); > > > > >extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) > throw (); > >extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) > throw (); > > > > > > > >extern __sighandler_t signal (int __sig, __sighandler_t __handler) > throw (); ># 104 "/usr/include/signal.h" 3 4 > > > > > >extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) > throw (); > > > > > > >extern int kill (__pid_t __pid, int __sig) throw (); > > > > > > >extern int killpg (__pid_t __pgrp, int __sig) throw (); > > > > >extern int raise (int __sig) throw (); > > > > >extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) > throw (); >extern int gsignal (int __sig) throw (); > > > > >extern void psignal (int __sig, __const char *__s); ># 153 "/usr/include/signal.h" 3 4 >extern int __sigpause (int __sig_or_mask, int __is_sig); ># 162 "/usr/include/signal.h" 3 4 >extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); ># 181 "/usr/include/signal.h" 3 4 >extern int sigblock (int __mask) throw () __attribute__ ((__deprecated__)); > > >extern int sigsetmask (int __mask) throw () __attribute__ ((__deprecated__)); > > >extern int siggetmask (void) throw () __attribute__ ((__deprecated__)); ># 196 "/usr/include/signal.h" 3 4 >typedef __sighandler_t sighandler_t; > > > > >typedef __sighandler_t sig_t; > > > > > > > ># 1 "/usr/include/time.h" 1 3 4 ># 210 "/usr/include/signal.h" 2 3 4 > > ># 1 "/usr/include/bits/siginfo.h" 1 3 4 ># 25 "/usr/include/bits/siginfo.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 26 "/usr/include/bits/siginfo.h" 2 3 4 > > > > > > > >typedef union sigval > { > int sival_int; > void *sival_ptr; > } sigval_t; ># 51 "/usr/include/bits/siginfo.h" 3 4 >typedef struct siginfo > { > int si_signo; > int si_errno; > > int si_code; > > union > { > int _pad[((128 / sizeof (int)) - 3)]; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > } _kill; > > > struct > { > int si_tid; > int si_overrun; > sigval_t si_sigval; > } _timer; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > sigval_t si_sigval; > } _rt; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > int si_status; > __clock_t si_utime; > __clock_t si_stime; > } _sigchld; > > > struct > { > void *si_addr; > } _sigfault; > > > struct > { > long int si_band; > int si_fd; > } _sigpoll; > } _sifields; > } siginfo_t; ># 129 "/usr/include/bits/siginfo.h" 3 4 >enum >{ > SI_ASYNCNL = -60, > > SI_TKILL = -6, > > SI_SIGIO, > > SI_ASYNCIO, > > SI_MESGQ, > > SI_TIMER, > > SI_QUEUE, > > SI_USER, > > SI_KERNEL = 0x80 > >}; > > > >enum >{ > ILL_ILLOPC = 1, > > ILL_ILLOPN, > > ILL_ILLADR, > > ILL_ILLTRP, > > ILL_PRVOPC, > > ILL_PRVREG, > > ILL_COPROC, > > ILL_BADSTK > >}; > > >enum >{ > FPE_INTDIV = 1, > > FPE_INTOVF, > > FPE_FLTDIV, > > FPE_FLTOVF, > > FPE_FLTUND, > > FPE_FLTRES, > > FPE_FLTINV, > > FPE_FLTSUB > >}; > > >enum >{ > SEGV_MAPERR = 1, > > SEGV_ACCERR > >}; > > >enum >{ > BUS_ADRALN = 1, > > BUS_ADRERR, > > BUS_OBJERR > >}; > > >enum >{ > TRAP_BRKPT = 1, > > TRAP_TRACE > >}; > > >enum >{ > CLD_EXITED = 1, > > CLD_KILLED, > > CLD_DUMPED, > > CLD_TRAPPED, > > CLD_STOPPED, > > CLD_CONTINUED > >}; > > >enum >{ > POLL_IN = 1, > > POLL_OUT, > > POLL_MSG, > > POLL_ERR, > > POLL_PRI, > > POLL_HUP > >}; ># 273 "/usr/include/bits/siginfo.h" 3 4 >typedef struct sigevent > { > sigval_t sigev_value; > int sigev_signo; > int sigev_notify; > > union > { > int _pad[((64 / sizeof (int)) - 3)]; > > > > __pid_t _tid; > > struct > { > void (*_function) (sigval_t); > void *_attribute; > } _sigev_thread; > } _sigev_un; > } sigevent_t; > > > > > > >enum >{ > SIGEV_SIGNAL = 0, > > SIGEV_NONE, > > SIGEV_THREAD, > > > SIGEV_THREAD_ID = 4 > >}; ># 213 "/usr/include/signal.h" 2 3 4 > > > >extern int sigemptyset (sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); > > >extern int sigfillset (sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); > > >extern int sigaddset (sigset_t *__set, int __signo) throw () __attribute__ ((__nonnull__ (1))); > > >extern int sigdelset (sigset_t *__set, int __signo) throw () __attribute__ ((__nonnull__ (1))); > > >extern int sigismember (__const sigset_t *__set, int __signo) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int sigisemptyset (__const sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); > > >extern int sigandset (sigset_t *__set, __const sigset_t *__left, > __const sigset_t *__right) throw () __attribute__ ((__nonnull__ (1, 2, 3))); > > >extern int sigorset (sigset_t *__set, __const sigset_t *__left, > __const sigset_t *__right) throw () __attribute__ ((__nonnull__ (1, 2, 3))); > > > > ># 1 "/usr/include/bits/sigaction.h" 1 3 4 ># 25 "/usr/include/bits/sigaction.h" 3 4 >struct sigaction > { > > > union > { > > __sighandler_t sa_handler; > > void (*sa_sigaction) (int, siginfo_t *, void *); > } > __sigaction_handler; > > > > > > > > __sigset_t sa_mask; > > > int sa_flags; > > > void (*sa_restorer) (void); > }; ># 247 "/usr/include/signal.h" 2 3 4 > > >extern int sigprocmask (int __how, __const sigset_t *__restrict __set, > sigset_t *__restrict __oset) throw (); > > > > > > >extern int sigsuspend (__const sigset_t *__set) __attribute__ ((__nonnull__ (1))); > > >extern int sigaction (int __sig, __const struct sigaction *__restrict __act, > struct sigaction *__restrict __oact) throw (); > > >extern int sigpending (sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig) > __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern int sigwaitinfo (__const sigset_t *__restrict __set, > siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sigtimedwait (__const sigset_t *__restrict __set, > siginfo_t *__restrict __info, > __const struct timespec *__restrict __timeout) > __attribute__ ((__nonnull__ (1))); > > > >extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val) > throw (); ># 304 "/usr/include/signal.h" 3 4 >extern __const char *__const _sys_siglist[65]; >extern __const char *__const sys_siglist[65]; > > >struct sigvec > { > __sighandler_t sv_handler; > int sv_mask; > > int sv_flags; > > }; ># 328 "/usr/include/signal.h" 3 4 >extern int sigvec (int __sig, __const struct sigvec *__vec, > struct sigvec *__ovec) throw (); > > > ># 1 "/usr/include/bits/sigcontext.h" 1 3 4 ># 28 "/usr/include/bits/sigcontext.h" 3 4 ># 1 "/usr/include/asm/sigcontext.h" 1 3 4 > > > ># 1 "/usr/include/asm/types.h" 1 3 4 > > > > > >typedef unsigned short umode_t; > > > > > > >typedef __signed__ char __s8; >typedef unsigned char __u8; > >typedef __signed__ short __s16; >typedef unsigned short __u16; > >typedef __signed__ int __s32; >typedef unsigned int __u32; > > > >__extension__ typedef __signed__ long long __s64; >__extension__ typedef unsigned long long __u64; ># 5 "/usr/include/asm/sigcontext.h" 2 3 4 ># 21 "/usr/include/asm/sigcontext.h" 3 4 >struct _fpreg { > unsigned short significand[4]; > unsigned short exponent; >}; > >struct _fpxreg { > unsigned short significand[4]; > unsigned short exponent; > unsigned short padding[3]; >}; > >struct _xmmreg { > unsigned long element[4]; >}; > >struct _fpstate { > > unsigned long cw; > unsigned long sw; > unsigned long tag; > unsigned long ipoff; > unsigned long cssel; > unsigned long dataoff; > unsigned long datasel; > struct _fpreg _st[8]; > unsigned short status; > unsigned short magic; > > > unsigned long _fxsr_env[6]; > unsigned long mxcsr; > unsigned long reserved; > struct _fpxreg _fxsr_st[8]; > struct _xmmreg _xmm[8]; > unsigned long padding[56]; >}; > > > >struct sigcontext { > unsigned short gs, __gsh; > unsigned short fs, __fsh; > unsigned short es, __esh; > unsigned short ds, __dsh; > unsigned long edi; > unsigned long esi; > unsigned long ebp; > unsigned long esp; > unsigned long ebx; > unsigned long edx; > unsigned long ecx; > unsigned long eax; > unsigned long trapno; > unsigned long err; > unsigned long eip; > unsigned short cs, __csh; > unsigned long eflags; > unsigned long esp_at_signal; > unsigned short ss, __ssh; > struct _fpstate * fpstate; > unsigned long oldmask; > unsigned long cr2; >}; ># 29 "/usr/include/bits/sigcontext.h" 2 3 4 ># 334 "/usr/include/signal.h" 2 3 4 > > >extern int sigreturn (struct sigcontext *__scp) throw (); > > > > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 344 "/usr/include/signal.h" 2 3 4 > > > > >extern int siginterrupt (int __sig, int __interrupt) throw (); > ># 1 "/usr/include/bits/sigstack.h" 1 3 4 ># 26 "/usr/include/bits/sigstack.h" 3 4 >struct sigstack > { > void *ss_sp; > int ss_onstack; > }; > > > >enum >{ > SS_ONSTACK = 1, > > SS_DISABLE > >}; ># 50 "/usr/include/bits/sigstack.h" 3 4 >typedef struct sigaltstack > { > void *ss_sp; > int ss_flags; > size_t ss_size; > } stack_t; ># 351 "/usr/include/signal.h" 2 3 4 > > ># 1 "/usr/include/sys/ucontext.h" 1 3 4 ># 23 "/usr/include/sys/ucontext.h" 3 4 ># 1 "/usr/include/signal.h" 1 3 4 ># 24 "/usr/include/sys/ucontext.h" 2 3 4 > > > ># 1 "/usr/include/bits/sigcontext.h" 1 3 4 ># 28 "/usr/include/sys/ucontext.h" 2 3 4 > > > >typedef int greg_t; > > > > > >typedef greg_t gregset_t[19]; > > > >enum >{ > REG_GS = 0, > > REG_FS, > > REG_ES, > > REG_DS, > > REG_EDI, > > REG_ESI, > > REG_EBP, > > REG_ESP, > > REG_EBX, > > REG_EDX, > > REG_ECX, > > REG_EAX, > > REG_TRAPNO, > > REG_ERR, > > REG_EIP, > > REG_CS, > > REG_EFL, > > REG_UESP, > > REG_SS > >}; > > > >struct _libc_fpreg >{ > unsigned short int significand[4]; > unsigned short int exponent; >}; > >struct _libc_fpstate >{ > unsigned long int cw; > unsigned long int sw; > unsigned long int tag; > unsigned long int ipoff; > unsigned long int cssel; > unsigned long int dataoff; > unsigned long int datasel; > struct _libc_fpreg _st[8]; > unsigned long int status; >}; > > >typedef struct _libc_fpstate *fpregset_t; > > >typedef struct > { > gregset_t gregs; > > > fpregset_t fpregs; > unsigned long int oldmask; > unsigned long int cr2; > } mcontext_t; > > >typedef struct ucontext > { > unsigned long int uc_flags; > struct ucontext *uc_link; > stack_t uc_stack; > mcontext_t uc_mcontext; > __sigset_t uc_sigmask; > struct _libc_fpstate __fpregs_mem; > } ucontext_t; ># 354 "/usr/include/signal.h" 2 3 4 > > > > > >extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) > throw () __attribute__ ((__deprecated__)); > > > >extern int sigaltstack (__const struct sigaltstack *__restrict __ss, > struct sigaltstack *__restrict __oss) throw (); > > > > > > > >extern int sighold (int __sig) throw (); > > >extern int sigrelse (int __sig) throw (); > > >extern int sigignore (int __sig) throw (); > > >extern __sighandler_t sigset (int __sig, __sighandler_t __disp) throw (); > > > > > > ># 1 "/usr/include/bits/sigthread.h" 1 3 4 ># 31 "/usr/include/bits/sigthread.h" 3 4 >extern int pthread_sigmask (int __how, > __const __sigset_t *__restrict __newmask, > __sigset_t *__restrict __oldmask)throw (); > > >extern int pthread_kill (pthread_t __threadid, int __signo) throw (); ># 390 "/usr/include/signal.h" 2 3 4 > > > > > > >extern int __libc_current_sigrtmin (void) throw (); > >extern int __libc_current_sigrtmax (void) throw (); > > > >} ># 71 "../condor_includes/condor_sys_linux.h" 2 > > > > ># 1 "/usr/include/sys/param.h" 1 3 4 ># 22 "/usr/include/sys/param.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/limits.h" 1 3 4 ># 11 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/limits.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/syslimits.h" 1 3 4 > > > > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/limits.h" 1 3 4 ># 122 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/limits.h" 3 4 ># 1 "/usr/include/limits.h" 1 3 4 ># 145 "/usr/include/limits.h" 3 4 ># 1 "/usr/include/bits/posix1_lim.h" 1 3 4 ># 153 "/usr/include/bits/posix1_lim.h" 3 4 ># 1 "/usr/include/bits/local_lim.h" 1 3 4 ># 36 "/usr/include/bits/local_lim.h" 3 4 ># 1 "/usr/include/linux/limits.h" 1 3 4 ># 37 "/usr/include/bits/local_lim.h" 2 3 4 ># 154 "/usr/include/bits/posix1_lim.h" 2 3 4 ># 146 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/posix2_lim.h" 1 3 4 ># 150 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/xopen_lim.h" 1 3 4 ># 34 "/usr/include/bits/xopen_lim.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 35 "/usr/include/bits/xopen_lim.h" 2 3 4 ># 154 "/usr/include/limits.h" 2 3 4 ># 123 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/limits.h" 2 3 4 ># 8 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/syslimits.h" 2 3 4 ># 12 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/limits.h" 2 3 4 ># 23 "/usr/include/sys/param.h" 2 3 4 > ># 1 "/usr/include/linux/param.h" 1 3 4 > > > ># 1 "/usr/include/asm/param.h" 1 3 4 ># 5 "/usr/include/linux/param.h" 2 3 4 ># 25 "/usr/include/sys/param.h" 2 3 4 ># 76 "../condor_includes/condor_sys_linux.h" 2 > > > ># 1 "../condor_includes/condor_fix_sys_time.h" 1 ># 34 "../condor_includes/condor_fix_sys_time.h" ># 1 "/usr/include/sys/time.h" 1 3 4 ># 27 "/usr/include/sys/time.h" 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 28 "/usr/include/sys/time.h" 2 3 4 > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 30 "/usr/include/sys/time.h" 2 3 4 ># 39 "/usr/include/sys/time.h" 3 4 >extern "C" { ># 57 "/usr/include/sys/time.h" 3 4 >struct timezone > { > int tz_minuteswest; > int tz_dsttime; > }; > >typedef struct timezone *__restrict __timezone_ptr_t; ># 73 "/usr/include/sys/time.h" 3 4 >extern int gettimeofday (struct timeval *__restrict __tv, > __timezone_ptr_t __tz) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int settimeofday (__const struct timeval *__tv, > __const struct timezone *__tz) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int adjtime (__const struct timeval *__delta, > struct timeval *__olddelta) throw (); > > > > >enum __itimer_which > { > > ITIMER_REAL = 0, > > > ITIMER_VIRTUAL = 1, > > > > ITIMER_PROF = 2 > > }; > > > >struct itimerval > { > > struct timeval it_interval; > > struct timeval it_value; > }; > > > > > > >typedef int __itimer_which_t; > > > > >extern int __hide_getitimer (__itimer_which_t __which, > struct itimerval *__value) throw (); > > > > >extern int __hide_setitimer (__itimer_which_t __which, > __const struct itimerval *__restrict __new, > struct itimerval *__restrict __old) throw (); > > > > >extern int utimes (__const char *__file, __const struct timeval __tvp[2]) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int futimes (int __fd, __const struct timeval __tvp[2]) throw (); > > > > > > >extern int futimesat (int __fd, __const char *__file, > __const struct timeval __tvp[2]) throw (); ># 191 "/usr/include/sys/time.h" 3 4 >} ># 35 "../condor_includes/condor_fix_sys_time.h" 2 > > > >extern "C" { ># 47 "../condor_includes/condor_fix_sys_time.h" >int getitimer(int, struct itimerval *); >int __getitimer(int, struct itimerval *); >int setitimer(int, const struct itimerval *, struct itimerval *); >int __setitimer(int, const struct itimerval *, struct itimerval *); > > > > >} ># 80 "../condor_includes/condor_sys_linux.h" 2 > > > ># 1 "/usr/include/sys/vfs.h" 1 3 4 > > > ># 1 "/usr/include/sys/statfs.h" 1 3 4 ># 26 "/usr/include/sys/statfs.h" 3 4 ># 1 "/usr/include/bits/statfs.h" 1 3 4 ># 25 "/usr/include/bits/statfs.h" 3 4 >struct statfs > { > int f_type; > int f_bsize; > > __fsblkcnt_t f_blocks; > __fsblkcnt_t f_bfree; > __fsblkcnt_t f_bavail; > __fsfilcnt_t f_files; > __fsfilcnt_t f_ffree; > > > > > > > > __fsid_t f_fsid; > int f_namelen; > int f_frsize; > int f_spare[5]; > }; > > >struct statfs64 > { > int f_type; > int f_bsize; > __fsblkcnt64_t f_blocks; > __fsblkcnt64_t f_bfree; > __fsblkcnt64_t f_bavail; > __fsfilcnt64_t f_files; > __fsfilcnt64_t f_ffree; > __fsid_t f_fsid; > int f_namelen; > int f_frsize; > int f_spare[5]; > }; ># 27 "/usr/include/sys/statfs.h" 2 3 4 > >extern "C" { > > > >extern int statfs (__const char *__file, struct statfs *__buf) > throw () __attribute__ ((__nonnull__ (1, 2))); ># 44 "/usr/include/sys/statfs.h" 3 4 >extern int statfs64 (__const char *__file, struct statfs64 *__buf) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int fstatfs (int __fildes, struct statfs *__buf) > throw () __attribute__ ((__nonnull__ (2))); ># 62 "/usr/include/sys/statfs.h" 3 4 >extern int fstatfs64 (int __fildes, struct statfs64 *__buf) > throw () __attribute__ ((__nonnull__ (2))); > > >} ># 4 "/usr/include/sys/vfs.h" 2 3 4 ># 84 "../condor_includes/condor_sys_linux.h" 2 > > > > > ># 1 "../condor_includes/condor_fix_sys_resource.h" 1 ># 38 "../condor_includes/condor_fix_sys_resource.h" ># 1 "/usr/include/sys/resource.h" 1 3 4 ># 25 "/usr/include/sys/resource.h" 3 4 ># 1 "/usr/include/bits/resource.h" 1 3 4 ># 33 "/usr/include/bits/resource.h" 3 4 >enum __rlimit_resource >{ > > RLIMIT_CPU = 0, > > > > RLIMIT_FSIZE = 1, > > > > RLIMIT_DATA = 2, > > > > RLIMIT_STACK = 3, > > > > RLIMIT_CORE = 4, > > > > > > > __RLIMIT_RSS = 5, > > > > RLIMIT_NOFILE = 7, > __RLIMIT_OFILE = RLIMIT_NOFILE, > > > > > RLIMIT_AS = 9, > > > > __RLIMIT_NPROC = 6, > > > > __RLIMIT_MEMLOCK = 8, > > > > __RLIMIT_LOCKS = 10, > > > > __RLIMIT_SIGPENDING = 11, > > > > __RLIMIT_MSGQUEUE = 12, > > > > > > __RLIMIT_NICE = 13, > > > > > __RLIMIT_RTPRIO = 14, > > > __RLIMIT_NLIMITS = 15, > __RLIM_NLIMITS = __RLIMIT_NLIMITS > > >}; ># 127 "/usr/include/bits/resource.h" 3 4 >typedef __rlim_t rlim_t; > > > > >typedef __rlim64_t rlim64_t; > > >struct rlimit > { > > rlim_t rlim_cur; > > rlim_t rlim_max; > }; > > >struct rlimit64 > { > > rlim64_t rlim_cur; > > rlim64_t rlim_max; > }; > > > >enum __rusage_who >{ > > RUSAGE_SELF = 0, > > > > RUSAGE_CHILDREN = -1 > >}; > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 167 "/usr/include/bits/resource.h" 2 3 4 > > >struct rusage > { > > struct timeval ru_utime; > > struct timeval ru_stime; > > long int ru_maxrss; > > > long int ru_ixrss; > > long int ru_idrss; > > long int ru_isrss; > > > long int ru_minflt; > > long int ru_majflt; > > long int ru_nswap; > > > long int ru_inblock; > > long int ru_oublock; > > long int ru_msgsnd; > > long int ru_msgrcv; > > long int ru_nsignals; > > > > long int ru_nvcsw; > > > long int ru_nivcsw; > }; > > > > > > > >enum __priority_which >{ > PRIO_PROCESS = 0, > > PRIO_PGRP = 1, > > PRIO_USER = 2 > >}; ># 26 "/usr/include/sys/resource.h" 2 3 4 > > > > > > >extern "C" { ># 43 "/usr/include/sys/resource.h" 3 4 >typedef int __rlimit_resource_t; >typedef int __rusage_who_t; >typedef int __priority_which_t; > > > > > >extern int __hide_getrlimit (__rlimit_resource_t __resource, > struct rlimit *__rlimits) throw (); ># 62 "/usr/include/sys/resource.h" 3 4 >extern int getrlimit64 (__rlimit_resource_t __resource, > struct rlimit64 *__rlimits) throw (); > > > > > > >extern int __hide_setrlimit (__rlimit_resource_t __resource, > __const struct rlimit *__rlimits) throw (); ># 82 "/usr/include/sys/resource.h" 3 4 >extern int setrlimit64 (__rlimit_resource_t __resource, > __const struct rlimit64 *__rlimits) throw (); > > > > >extern int __hide_getrusage (__rusage_who_t __who, struct rusage *__usage) throw (); > > > > > >extern int __hide_getpriority (__priority_which_t __which, id_t __who) throw (); > > > >extern int __hide_setpriority (__priority_which_t __which, id_t __who, int __prio) > throw (); > >} ># 39 "../condor_includes/condor_fix_sys_resource.h" 2 > > > >extern "C" { ># 54 "../condor_includes/condor_fix_sys_resource.h" >int getrlimit(int, struct rlimit *); >int __getrlimit(int, struct rlimit *); >int setrlimit(int, const struct rlimit *); >int getpriority(int, int); >int setpriority(int, int, int); >int getrusage(int, struct rusage * ); >int __getrusage(int, struct rusage * ); ># 73 "../condor_includes/condor_fix_sys_resource.h" >} ># 90 "../condor_includes/condor_sys_linux.h" 2 ># 1 "/usr/include/sys/wait.h" 1 3 4 ># 29 "/usr/include/sys/wait.h" 3 4 >extern "C" { ># 38 "/usr/include/sys/wait.h" 3 4 ># 1 "/usr/include/bits/waitflags.h" 1 3 4 ># 39 "/usr/include/sys/wait.h" 2 3 4 ># 80 "/usr/include/sys/wait.h" 3 4 ># 1 "/usr/include/bits/waitstatus.h" 1 3 4 ># 67 "/usr/include/bits/waitstatus.h" 3 4 >union wait > { > int w_status; > struct > { > > unsigned int __w_termsig:7; > unsigned int __w_coredump:1; > unsigned int __w_retcode:8; > unsigned int:16; > > > > > > > > } __wait_terminated; > struct > { > > unsigned int __w_stopval:8; > unsigned int __w_stopsig:8; > unsigned int:16; > > > > > > > } __wait_stopped; > }; ># 81 "/usr/include/sys/wait.h" 2 3 4 ># 102 "/usr/include/sys/wait.h" 3 4 >typedef enum >{ > P_ALL, > P_PID, > P_PGID >} idtype_t; ># 116 "/usr/include/sys/wait.h" 3 4 >extern __pid_t wait (void * __stat_loc); ># 139 "/usr/include/sys/wait.h" 3 4 >extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options); > > > ># 1 "/usr/include/bits/siginfo.h" 1 3 4 ># 25 "/usr/include/bits/siginfo.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 26 "/usr/include/bits/siginfo.h" 2 3 4 ># 144 "/usr/include/sys/wait.h" 2 3 4 ># 155 "/usr/include/sys/wait.h" 3 4 >extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop, > int __options); > > > > > >struct rusage; > > > > > > >extern __pid_t wait3 (void * __stat_loc, int __options, > struct rusage * __usage) throw (); > > > > >extern __pid_t wait4 (__pid_t __pid, void * __stat_loc, int __options, > struct rusage *__usage) throw (); > > > >} ># 91 "../condor_includes/condor_sys_linux.h" 2 ># 105 "../condor_includes/condor_sys_linux.h" ># 1 "/usr/include/sys/uio.h" 1 3 4 ># 26 "/usr/include/sys/uio.h" 3 4 >extern "C" { > > ># 1 "/usr/include/bits/uio.h" 1 3 4 ># 44 "/usr/include/bits/uio.h" 3 4 >struct iovec > { > void *iov_base; > size_t iov_len; > }; ># 30 "/usr/include/sys/uio.h" 2 3 4 ># 40 "/usr/include/sys/uio.h" 3 4 >extern ssize_t __hide_readv (int __fd, __const struct iovec *__iovec, int __count); ># 50 "/usr/include/sys/uio.h" 3 4 >extern ssize_t __hide_writev (int __fd, __const struct iovec *__iovec, int __count); > >} ># 106 "../condor_includes/condor_sys_linux.h" 2 > > > > > >extern "C" { > >int readv(int, const struct iovec *, size_t); >int __readv(int, const struct iovec *, size_t); >int writev(int, const struct iovec *, size_t); >int __writev(int, const struct iovec *, size_t); > > > > > > >} > > > > ># 1 "/usr/include/search.h" 1 3 4 ># 26 "/usr/include/search.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 27 "/usr/include/search.h" 2 3 4 > >extern "C" { > > > > > > >struct qelem > { > struct qelem *q_forw; > struct qelem *q_back; > char q_data[1]; > }; > > > > >extern void insque (void *__elem, void *__prev) throw (); > > >extern void remque (void *__elem) throw (); > > > > > > >typedef int (*__compar_fn_t) (__const void *, __const void *); > > >typedef __compar_fn_t comparison_fn_t; > > > > >typedef enum > { > FIND, > ENTER > } >ACTION; > >typedef struct entry > { > char *key; > void *data; > } >ENTRY; > > >struct _ENTRY; ># 88 "/usr/include/search.h" 3 4 >extern ENTRY *hsearch (ENTRY __item, ACTION __action) throw (); > > >extern int hcreate (size_t __nel) throw (); > > >extern void hdestroy (void) throw (); > > > >struct hsearch_data > { > struct _ENTRY *table; > unsigned int size; > unsigned int filled; > }; > > > >extern int hsearch_r (ENTRY __item, ACTION __action, ENTRY **__retval, > struct hsearch_data *__htab) throw (); >extern int hcreate_r (size_t __nel, struct hsearch_data *__htab) throw (); >extern void hdestroy_r (struct hsearch_data *__htab) throw (); ># 119 "/usr/include/search.h" 3 4 >typedef enum >{ > preorder, > postorder, > endorder, > leaf >} >VISIT; > > > >extern void *tsearch (__const void *__key, void **__rootp, > __compar_fn_t __compar); > > > >extern void *tfind (__const void *__key, void *__const *__rootp, > __compar_fn_t __compar); > > >extern void *tdelete (__const void *__restrict __key, > void **__restrict __rootp, > __compar_fn_t __compar); > > > >typedef void (*__action_fn_t) (__const void *__nodep, VISIT __value, > int __level); > > > > >extern void twalk (__const void *__root, __action_fn_t __action); > > > > >typedef void (*__free_fn_t) (void *__nodep); > > >extern void tdestroy (void *__root, __free_fn_t __freefct); > > > > > >extern void *lfind (__const void *__key, __const void *__base, > size_t *__nmemb, size_t __size, __compar_fn_t __compar); > > > >extern void *lsearch (__const void *__key, void *__base, > size_t *__nmemb, size_t __size, __compar_fn_t __compar); > >} ># 129 "../condor_includes/condor_sys_linux.h" 2 ># 139 "../condor_includes/condor_sys_linux.h" ># 1 "/usr/include/malloc.h" 1 3 4 ># 25 "/usr/include/malloc.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 152 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 3 4 >typedef int ptrdiff_t; ># 26 "/usr/include/malloc.h" 2 3 4 ># 47 "/usr/include/malloc.h" 3 4 >extern "C" { > > >extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > > >extern void *calloc (size_t __nmemb, size_t __size) throw () > __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > > > > > > >extern void *realloc (void *__ptr, size_t __size) throw () > __attribute__ ((__warn_unused_result__)); > > >extern void free (void *__ptr) throw (); > > >extern void cfree (void *__ptr) throw (); > > >extern void *memalign (size_t __alignment, size_t __size) throw () > __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > > >extern void *valloc (size_t __size) throw () > __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > > > >extern void * pvalloc (size_t __size) throw () > __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > > > >extern void *(*__morecore) (ptrdiff_t __size); > > >extern void *__default_morecore (ptrdiff_t __size) throw () > __attribute__ ((__malloc__)); > > > >struct mallinfo { > int arena; > int ordblks; > int smblks; > int hblks; > int hblkhd; > int usmblks; > int fsmblks; > int uordblks; > int fordblks; > int keepcost; >}; > > >extern struct mallinfo mallinfo (void) throw (); ># 132 "/usr/include/malloc.h" 3 4 >extern int mallopt (int __param, int __val) throw (); > > > >extern int malloc_trim (size_t __pad) throw (); > > > >extern size_t malloc_usable_size (void *__ptr) throw (); > > >extern void malloc_stats (void) throw (); > > >extern void *malloc_get_state (void) throw (); > > > >extern int malloc_set_state (void *__ptr) throw (); > > > > >extern void (*__malloc_initialize_hook) (void); > >extern void (*__free_hook) (void *__ptr, __const void *); > >extern void *(*__malloc_hook) (size_t __size, __const void *); > >extern void *(*__realloc_hook) (void *__ptr, size_t __size, __const void *); > >extern void *(*__memalign_hook) (size_t __alignment, size_t __size, __const void *); > > >extern void (*__after_morecore_hook) (void); > > >extern void __malloc_check_init (void) throw (); > > >} ># 140 "../condor_includes/condor_sys_linux.h" 2 > > ># 1 "/usr/include/sys/sysinfo.h" 1 3 4 ># 25 "/usr/include/sys/sysinfo.h" 3 4 ># 1 "/usr/include/linux/kernel.h" 1 3 4 ># 10 "/usr/include/linux/kernel.h" 3 4 >struct sysinfo { > long uptime; > unsigned long loads[3]; > unsigned long totalram; > unsigned long freeram; > unsigned long sharedram; > unsigned long bufferram; > unsigned long totalswap; > unsigned long freeswap; > unsigned short procs; > unsigned short pad; > unsigned long totalhigh; > unsigned long freehigh; > unsigned int mem_unit; > char _f[20-2*sizeof(long)-sizeof(int)]; >}; ># 26 "/usr/include/sys/sysinfo.h" 2 3 4 > >extern "C" { > > >extern int sysinfo (struct sysinfo *__info) throw (); > > > >extern int get_nprocs_conf (void) throw (); > > >extern int get_nprocs (void) throw (); > > > >extern long int get_phys_pages (void) throw (); > > >extern long int get_avphys_pages (void) throw (); > >} ># 143 "../condor_includes/condor_sys_linux.h" 2 ># 155 "../condor_includes/condor_sys_linux.h" ># 1 "/usr/include/sys/syscall.h" 1 3 4 ># 25 "/usr/include/sys/syscall.h" 3 4 ># 1 "/usr/include/asm/unistd.h" 1 3 4 > ># 1 "/usr/include/asm/unistd_32.h" 1 3 4 ># 3 "/usr/include/asm/unistd.h" 2 3 4 ># 26 "/usr/include/sys/syscall.h" 2 3 4 > > > > > > ># 1 "/usr/include/bits/syscall.h" 1 3 4 ># 33 "/usr/include/sys/syscall.h" 2 3 4 ># 156 "../condor_includes/condor_sys_linux.h" 2 > > > > > ># 1 "/usr/include/linux/personality.h" 1 3 4 ># 10 "/usr/include/linux/personality.h" 3 4 >enum { > ADDR_NO_RANDOMIZE = 0x0040000, > FDPIC_FUNCPTRS = 0x0080000, > > > MMAP_PAGE_ZERO = 0x0100000, > ADDR_COMPAT_LAYOUT = 0x0200000, > READ_IMPLIES_EXEC = 0x0400000, > ADDR_LIMIT_32BIT = 0x0800000, > SHORT_INODE = 0x1000000, > WHOLE_SECONDS = 0x2000000, > STICKY_TIMEOUTS = 0x4000000, > ADDR_LIMIT_3GB = 0x8000000, >}; ># 37 "/usr/include/linux/personality.h" 3 4 >enum { > PER_LINUX = 0x0000, > PER_LINUX_32BIT = 0x0000 | ADDR_LIMIT_32BIT, > PER_LINUX_FDPIC = 0x0000 | FDPIC_FUNCPTRS, > PER_SVR4 = 0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, > PER_SVR3 = 0x0002 | STICKY_TIMEOUTS | SHORT_INODE, > PER_SCOSVR3 = 0x0003 | STICKY_TIMEOUTS | > WHOLE_SECONDS | SHORT_INODE, > PER_OSR5 = 0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS, > PER_WYSEV386 = 0x0004 | STICKY_TIMEOUTS | SHORT_INODE, > PER_ISCR4 = 0x0005 | STICKY_TIMEOUTS, > PER_BSD = 0x0006, > PER_SUNOS = 0x0006 | STICKY_TIMEOUTS, > PER_XENIX = 0x0007 | STICKY_TIMEOUTS | SHORT_INODE, > PER_LINUX32 = 0x0008, > PER_LINUX32_3GB = 0x0008 | ADDR_LIMIT_3GB, > PER_IRIX32 = 0x0009 | STICKY_TIMEOUTS, > PER_IRIXN32 = 0x000a | STICKY_TIMEOUTS, > PER_IRIX64 = 0x000b | STICKY_TIMEOUTS, > PER_RISCOS = 0x000c, > PER_SOLARIS = 0x000d | STICKY_TIMEOUTS, > PER_UW7 = 0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, > PER_OSF4 = 0x000f, > PER_HPUX = 0x0010, > PER_MASK = 0x00ff, >}; ># 162 "../condor_includes/condor_sys_linux.h" 2 ># 183 "../condor_includes/condor_sys_linux.h" >typedef void* MMAP_T; ># 61 "../condor_includes/condor_system.h" 2 ># 83 "../condor_includes/condor_system.h" ># 1 "../condor_includes/condor_fix_access.h" 1 ># 37 "../condor_includes/condor_fix_access.h" >extern "C" { > > > >int access_euid(const char *path, int mode); > >} ># 84 "../condor_includes/condor_system.h" 2 ># 1 "../condor_includes/condor_file_lock.h" 1 ># 53 "../condor_includes/condor_file_lock.h" ># 1 "/usr/include/sys/file.h" 1 3 4 ># 25 "/usr/include/sys/file.h" 3 4 ># 1 "/usr/include/fcntl.h" 1 3 4 ># 30 "/usr/include/fcntl.h" 3 4 >extern "C" { > > > ># 1 "/usr/include/bits/fcntl.h" 1 3 4 ># 27 "/usr/include/bits/fcntl.h" 3 4 ># 1 "/usr/include/bits/uio.h" 1 3 4 ># 28 "/usr/include/bits/fcntl.h" 2 3 4 ># 144 "/usr/include/bits/fcntl.h" 3 4 >struct flock > { > short int l_type; > short int l_whence; > > __off_t l_start; > __off_t l_len; > > > > > __pid_t l_pid; > }; > > >struct flock64 > { > short int l_type; > short int l_whence; > __off64_t l_start; > __off64_t l_len; > __pid_t l_pid; > }; ># 211 "/usr/include/bits/fcntl.h" 3 4 >extern "C" { > > > > >extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) > throw (); > > > >extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to, > unsigned int __flags); > > > >extern ssize_t vmsplice (int __fdout, const struct iovec *__iov, > size_t __count, unsigned int __flags); > > >extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout, > __off64_t *__offout, size_t __len, > unsigned int __flags); > > >extern ssize_t tee (int __fdin, int __fdout, size_t __len, > unsigned int __flags); > > > >} ># 35 "/usr/include/fcntl.h" 2 3 4 ># 76 "/usr/include/fcntl.h" 3 4 >extern int fcntl (int __fd, int __cmd, ...); ># 85 "/usr/include/fcntl.h" 3 4 >extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); ># 95 "/usr/include/fcntl.h" 3 4 >extern int open64 (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); ># 109 "/usr/include/fcntl.h" 3 4 >extern int openat (int __fd, __const char *__file, int __oflag, ...) > __attribute__ ((__nonnull__ (2))); ># 120 "/usr/include/fcntl.h" 3 4 >extern int openat64 (int __fd, __const char *__file, int __oflag, ...) > __attribute__ ((__nonnull__ (2))); ># 130 "/usr/include/fcntl.h" 3 4 >extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); ># 140 "/usr/include/fcntl.h" 3 4 >extern int creat64 (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); ># 176 "/usr/include/fcntl.h" 3 4 >extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len, > int __advise) throw (); ># 188 "/usr/include/fcntl.h" 3 4 >extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, > int __advise) throw (); ># 198 "/usr/include/fcntl.h" 3 4 >extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len); ># 209 "/usr/include/fcntl.h" 3 4 >extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); > > > > > > > ># 1 "/usr/include/bits/fcntl2.h" 1 3 4 ># 27 "/usr/include/bits/fcntl2.h" 3 4 >extern int __open_2 (__const char *__path, int __oflag) __attribute__ ((__nonnull__ (1))); >extern int __open_alias (__const char *__path, int __oflag, ...) __asm__ ("" "open") __attribute__ ((__nonnull__ (1))); > > > > > > > >extern void __open_too_many_args (void) __attribute__((__error__ ("open can be called either with 2 or 3 arguments, not more"))); > >extern void __open_missing_mode (void) __attribute__((__error__ ("open with O_CREAT in second argument needs 3 arguments"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >open (__const char *__path, int __oflag, ...) >{ > if (__builtin_va_arg_pack_len () > 1) > __open_too_many_args (); > > if (__builtin_constant_p (__oflag)) > { > if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) > { > __open_missing_mode (); > return __open_2 (__path, __oflag); > } > return __open_alias (__path, __oflag, __builtin_va_arg_pack ()); > } > > if (__builtin_va_arg_pack_len () < 1) > return __open_2 (__path, __oflag); > > return __open_alias (__path, __oflag, __builtin_va_arg_pack ()); >} > > > >extern int __open64_2 (__const char *__path, int __oflag) __attribute__ ((__nonnull__ (1))); >extern int __open64_alias (__const char *__path, int __oflag, ...) __asm__ ("" "open64") __attribute__ ((__nonnull__ (1))); > >extern void __open64_too_many_args (void) __attribute__((__error__ ("open64 can be called either with 2 or 3 arguments, not more"))); > >extern void __open64_missing_mode (void) __attribute__((__error__ ("open64 with O_CREAT in second argument needs 3 arguments"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >open64 (__const char *__path, int __oflag, ...) >{ > if (__builtin_va_arg_pack_len () > 1) > __open64_too_many_args (); > > if (__builtin_constant_p (__oflag)) > { > if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) > { > __open64_missing_mode (); > return __open64_2 (__path, __oflag); > } > return __open64_alias (__path, __oflag, __builtin_va_arg_pack ()); > } > > if (__builtin_va_arg_pack_len () < 1) > return __open64_2 (__path, __oflag); > > return __open64_alias (__path, __oflag, __builtin_va_arg_pack ()); >} > > > > > >extern int __openat_2 (int __fd, __const char *__path, int __oflag) > __attribute__ ((__nonnull__ (2))); >extern int __openat_alias (int __fd, __const char *__path, int __oflag, ...) __asm__ ("" "openat") > > __attribute__ ((__nonnull__ (2))); ># 112 "/usr/include/bits/fcntl2.h" 3 4 >extern void __openat_too_many_args (void) __attribute__((__error__ ("openat can be called either with 3 or 4 arguments, not more"))); > >extern void __openat_missing_mode (void) __attribute__((__error__ ("openat with O_CREAT in third argument needs 4 arguments"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >openat (int __fd, __const char *__path, int __oflag, ...) >{ > if (__builtin_va_arg_pack_len () > 1) > __openat_too_many_args (); > > if (__builtin_constant_p (__oflag)) > { > if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) > { > __openat_missing_mode (); > return __openat_2 (__fd, __path, __oflag); > } > return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); > } > > if (__builtin_va_arg_pack_len () < 1) > return __openat_2 (__fd, __path, __oflag); > > return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); >} > > > >extern int __openat64_2 (int __fd, __const char *__path, int __oflag) > __attribute__ ((__nonnull__ (2))); >extern int __openat64_alias (int __fd, __const char *__path, int __oflag, ...) __asm__ ("" "openat64") > > __attribute__ ((__nonnull__ (2))); >extern void __openat64_too_many_args (void) __attribute__((__error__ ("openat64 can be called either with 3 or 4 arguments, not more"))); > >extern void __openat64_missing_mode (void) __attribute__((__error__ ("openat64 with O_CREAT in third argument needs 4 arguments"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >openat64 (int __fd, __const char *__path, int __oflag, ...) >{ > if (__builtin_va_arg_pack_len () > 1) > __openat64_too_many_args (); > > if (__builtin_constant_p (__oflag)) > { > if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) > { > __openat64_missing_mode (); > return __openat64_2 (__fd, __path, __oflag); > } > return __openat64_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); > } > > if (__builtin_va_arg_pack_len () < 1) > return __openat64_2 (__fd, __path, __oflag); > > return __openat64_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); >} ># 218 "/usr/include/fcntl.h" 2 3 4 > > >} ># 26 "/usr/include/sys/file.h" 2 3 4 > > >extern "C" { ># 51 "/usr/include/sys/file.h" 3 4 >extern int flock (int __fd, int __operation) throw (); > > >} ># 54 "../condor_includes/condor_file_lock.h" 2 ># 97 "../condor_includes/condor_file_lock.h" ># 1 "../h/file_lock.h" 1 ># 23 "../h/file_lock.h" >typedef enum { READ_LOCK, WRITE_LOCK, UN_LOCK } LOCK_TYPE; ># 33 "../h/file_lock.h" >class FileLock { >public: > FileLock( int fd, FILE *fp = __null, const char* path = __null ); > FileLock( const char* path ); > ~FileLock(); > > > void SetFdFp( int fd, FILE *fp = __null ); > > > bool is_blocking(); > LOCK_TYPE get_state(); > void display(); > > > void set_blocking( bool ); > bool obtain( LOCK_TYPE t ); > bool release(); > >private: > void Reset( void ); > > int m_fd; > FILE *m_fp; > bool blocking; > LOCK_TYPE state; > char* m_path; > int use_kernel_mutex; > int lock_via_mutex(LOCK_TYPE type); > > > > >}; ># 98 "../condor_includes/condor_file_lock.h" 2 ># 85 "../condor_includes/condor_system.h" 2 ># 1 "../condor_includes/condor_fix_assert.h" 1 ># 61 "../condor_includes/condor_fix_assert.h" ># 1 "/usr/include/assert.h" 1 3 4 ># 66 "/usr/include/assert.h" 3 4 >extern "C" { > > >extern void __assert_fail (__const char *__assertion, __const char *__file, > unsigned int __line, __const char *__function) > throw () __attribute__ ((__noreturn__)); > > >extern void __assert_perror_fail (int __errnum, __const char *__file, > unsigned int __line, > __const char *__function) > throw () __attribute__ ((__noreturn__)); > > > > >extern void __assert (const char *__assertion, const char *__file, int __line) > throw () __attribute__ ((__noreturn__)); > > >} ># 62 "../condor_includes/condor_fix_assert.h" 2 ># 86 "../condor_includes/condor_system.h" 2 ># 152 "../condor_includes/condor_system.h" ># 1 "/usr/include/stdlib.h" 1 3 4 ># 33 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 34 "/usr/include/stdlib.h" 2 3 4 > >extern "C" { ># 96 "/usr/include/stdlib.h" 3 4 > > >typedef struct > { > int quot; > int rem; > } div_t; > > > >typedef struct > { > long int quot; > long int rem; > } ldiv_t; > > > > > > > >__extension__ typedef struct > { > long long int quot; > long long int rem; > } lldiv_t; > > ># 140 "/usr/include/stdlib.h" 3 4 >extern size_t __ctype_get_mb_cur_max (void) throw () __attribute__ ((__warn_unused_result__)); > > > > >extern double atof (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern int atoi (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern long int atol (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >__extension__ extern long long int atoll (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >extern double strtod (__const char *__restrict __nptr, > char **__restrict __endptr) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >extern float strtof (__const char *__restrict __nptr, > char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern long double strtold (__const char *__restrict __nptr, > char **__restrict __endptr) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >extern long int strtol (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern unsigned long int strtoul (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > >__extension__ >extern long long int strtoq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >__extension__ >extern unsigned long long int strtouq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >__extension__ >extern long long int strtoll (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >__extension__ >extern unsigned long long int strtoull (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > ># 236 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/include/xlocale.h" 1 3 4 ># 28 "/usr/include/xlocale.h" 3 4 >typedef struct __locale_struct >{ > > struct locale_data *__locales[13]; > > > const unsigned short int *__ctype_b; > const int *__ctype_tolower; > const int *__ctype_toupper; > > > const char *__names[13]; >} *__locale_t; ># 237 "/usr/include/stdlib.h" 2 3 4 > > > >extern long int strtol_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); > >extern unsigned long int strtoul_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); > >__extension__ >extern long long int strtoll_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); > >__extension__ >extern unsigned long long int strtoull_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); > >extern double strtod_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); > >extern float strtof_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); > >extern long double strtold_l (__const char *__restrict __nptr, > char **__restrict __endptr, > __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); > > > > > >extern __inline __attribute__ ((__gnu_inline__)) double >atof (__const char *__nptr) throw () >{ > return strtod (__nptr, (char **) __null); >} >extern __inline __attribute__ ((__gnu_inline__)) int >atoi (__const char *__nptr) throw () >{ > return (int) strtol (__nptr, (char **) __null, 10); >} >extern __inline __attribute__ ((__gnu_inline__)) long int >atol (__const char *__nptr) throw () >{ > return strtol (__nptr, (char **) __null, 10); >} > > > > >__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int >atoll (__const char *__nptr) throw () >{ > return strtoll (__nptr, (char **) __null, 10); >} > ># 311 "/usr/include/stdlib.h" 3 4 >extern char *l64a (long int __n) throw () __attribute__ ((__warn_unused_result__)); > > >extern long int a64l (__const char *__s) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 327 "/usr/include/stdlib.h" 3 4 >extern long int random (void) throw (); > > >extern void srandom (unsigned int __seed) throw (); > > > > > >extern char *initstate (unsigned int __seed, char *__statebuf, > size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); > > > >extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >struct random_data > { > int32_t *fptr; > int32_t *rptr; > int32_t *state; > int rand_type; > int rand_deg; > int rand_sep; > int32_t *end_ptr; > }; > >extern int random_r (struct random_data *__restrict __buf, > int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); > >extern int srandom_r (unsigned int __seed, struct random_data *__buf) > throw () __attribute__ ((__nonnull__ (2))); > >extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, > size_t __statelen, > struct random_data *__restrict __buf) > throw () __attribute__ ((__nonnull__ (2, 4))); > >extern int setstate_r (char *__restrict __statebuf, > struct random_data *__restrict __buf) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern int rand (void) throw (); > >extern void srand (unsigned int __seed) throw (); > > > > >extern int rand_r (unsigned int *__seed) throw (); > > > > > > > >extern double drand48 (void) throw (); >extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); > > >extern long int lrand48 (void) throw (); >extern long int nrand48 (unsigned short int __xsubi[3]) > throw () __attribute__ ((__nonnull__ (1))); > > >extern long int mrand48 (void) throw (); >extern long int jrand48 (unsigned short int __xsubi[3]) > throw () __attribute__ ((__nonnull__ (1))); > > >extern void srand48 (long int __seedval) throw (); >extern unsigned short int *seed48 (unsigned short int __seed16v[3]) > throw () __attribute__ ((__nonnull__ (1))); >extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); > > > > > >struct drand48_data > { > unsigned short int __x[3]; > unsigned short int __old_x[3]; > unsigned short int __c; > unsigned short int __init; > unsigned long long int __a; > }; > > >extern int drand48_r (struct drand48_data *__restrict __buffer, > double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); >extern int erand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int lrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern int nrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int mrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern int jrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int srand48_r (long int __seedval, struct drand48_data *__buffer) > throw () __attribute__ ((__nonnull__ (2))); > >extern int seed48_r (unsigned short int __seed16v[3], > struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); > >extern int lcong48_r (unsigned short int __param[7], > struct drand48_data *__buffer) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > > > > >extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > >extern void *calloc (size_t __nmemb, size_t __size) > throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > > > > > > > > > > >extern void *realloc (void *__ptr, size_t __size) > throw () __attribute__ ((__warn_unused_result__)); > >extern void free (void *__ptr) throw (); > > > > >extern void cfree (void *__ptr) throw (); > > > ># 1 "/usr/include/alloca.h" 1 3 4 ># 25 "/usr/include/alloca.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 26 "/usr/include/alloca.h" 2 3 4 > >extern "C" { > > > > > >extern void *alloca (size_t __size) throw (); > > > > > >} ># 498 "/usr/include/stdlib.h" 2 3 4 > > > > >extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > > > > >extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > >extern void abort (void) throw () __attribute__ ((__noreturn__)); > > > >extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern void exit (int __status) throw () __attribute__ ((__noreturn__)); > > > > > > >extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); > > > > > > >extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > >extern char *__secure_getenv (__const char *__name) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int setenv (__const char *__name, __const char *__value, int __replace) > throw () __attribute__ ((__nonnull__ (2))); > > >extern int unsetenv (__const char *__name) throw (); > > > > > > >extern int clearenv (void) throw (); ># 583 "/usr/include/stdlib.h" 3 4 >extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 594 "/usr/include/stdlib.h" 3 4 >extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 604 "/usr/include/stdlib.h" 3 4 >extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 614 "/usr/include/stdlib.h" 3 4 >extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 625 "/usr/include/stdlib.h" 3 4 >extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 635 "/usr/include/stdlib.h" 3 4 >extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > > > > > >extern int system (__const char *__command) __attribute__ ((__warn_unused_result__)); > > > > > > >extern char *canonicalize_file_name (__const char *__name) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 662 "/usr/include/stdlib.h" 3 4 >extern char *realpath (__const char *__restrict __name, > char *__restrict __resolved) throw () __attribute__ ((__warn_unused_result__)); ># 677 "/usr/include/stdlib.h" 3 4 >typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *); > > > > > >extern void *bsearch (__const void *__key, __const void *__base, > size_t __nmemb, size_t __size, __compar_fn_t __compar) > __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); > > > >extern void qsort (void *__base, size_t __nmemb, size_t __size, > __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); > >extern void qsort_r (void *__base, size_t __nmemb, size_t __size, > __compar_d_fn_t __compar, void *__arg) > __attribute__ ((__nonnull__ (1, 4))); > > > > >extern int abs (int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); >extern long int labs (long int __x) throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); > > > >__extension__ extern long long int llabs (long long int __x) > throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); > > > > > > > >extern div_t div (int __numer, int __denom) > throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); >extern ldiv_t ldiv (long int __numer, long int __denom) > throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); > > > > >__extension__ extern lldiv_t lldiv (long long int __numer, > long long int __denom) > throw () __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); > ># 735 "/usr/include/stdlib.h" 3 4 >extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); > > > > >extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); > > > > >extern char *gcvt (double __value, int __ndigit, char *__buf) > throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); > > > > >extern char *qecvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); >extern char *qfcvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > throw () __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); >extern char *qgcvt (long double __value, int __ndigit, char *__buf) > throw () __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); > > > > >extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); >extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); > >extern int qecvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > throw () __attribute__ ((__nonnull__ (3, 4, 5))); >extern int qfcvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > throw () __attribute__ ((__nonnull__ (3, 4, 5))); > > > > > > > >extern int mblen (__const char *__s, size_t __n) throw () __attribute__ ((__warn_unused_result__)); > > >extern int mbtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n) throw () __attribute__ ((__warn_unused_result__)); > > >extern int wctomb (char *__s, wchar_t __wchar) throw () __attribute__ ((__warn_unused_result__)); > > > >extern size_t mbstowcs (wchar_t *__restrict __pwcs, > __const char *__restrict __s, size_t __n) throw (); > >extern size_t wcstombs (char *__restrict __s, > __const wchar_t *__restrict __pwcs, size_t __n) > throw (); > > > > > > > > >extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 823 "/usr/include/stdlib.h" 3 4 >extern int getsubopt (char **__restrict __optionp, > char *__const *__restrict __tokens, > char **__restrict __valuep) > throw () __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); > > > > > >extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); > > > > > > > >extern int grantpt (int __fd) throw (); > > > >extern int unlockpt (int __fd) throw (); > > > > >extern char *ptsname (int __fd) throw () __attribute__ ((__warn_unused_result__)); > > > > > > >extern int ptsname_r (int __fd, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))); > > >extern int getpt (void); > > > > > > >extern int getloadavg (double __loadavg[], int __nelem) > throw () __attribute__ ((__nonnull__ (1))); > > > > > ># 1 "/usr/include/bits/stdlib.h" 1 3 4 ># 24 "/usr/include/bits/stdlib.h" 3 4 >extern char *__realpath_chk (__const char *__restrict __name, > char *__restrict __resolved, > size_t __resolvedlen) throw () __attribute__ ((__warn_unused_result__)); >extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) throw () __asm__ ("" "realpath") __attribute__ ((__warn_unused_result__)); > > >extern char *__realpath_chk_warn (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) throw () __asm__ ("" "__realpath_chk") __attribute__ ((__warn_unused_result__)) > > > > __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) char * >realpath (__const char *__restrict __name, char *__restrict __resolved) throw () >{ > if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) > { > > if (__builtin_object_size (__resolved, 2 > 1) < 4096) > return __realpath_chk_warn (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); > > return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); > } > > return __realpath_alias (__name, __resolved); >} > > >extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, > size_t __nreal) throw () __attribute__ ((__nonnull__ (2))); >extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) throw () __asm__ ("" "ptsname_r") > > __attribute__ ((__nonnull__ (2))); >extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) throw () __asm__ ("" "__ptsname_r_chk") > > > __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >ptsname_r (int __fd, char *__buf, size_t __buflen) throw () >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__buflen)) > return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > if (__buflen > __builtin_object_size (__buf, 2 > 1)) > return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > } > return __ptsname_r_alias (__fd, __buf, __buflen); >} > > >extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) > throw () __attribute__ ((__warn_unused_result__)); >extern int __wctomb_alias (char *__s, wchar_t __wchar) throw () __asm__ ("" "wctomb") __attribute__ ((__warn_unused_result__)); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) int >wctomb (char *__s, wchar_t __wchar) throw () >{ > > > > > > > > if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) > return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); > return __wctomb_alias (__s, __wchar); >} > > >extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, > __const char *__restrict __src, > size_t __len, size_t __dstlen) throw (); >extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) throw () __asm__ ("" "mbstowcs"); > > > >extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__mbstowcs_chk") > > > > __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t >mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) throw () > >{ > if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __mbstowcs_chk (__dst, __src, __len, > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); > > if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) > return __mbstowcs_chk_warn (__dst, __src, __len, > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); > } > return __mbstowcs_alias (__dst, __src, __len); >} > > >extern size_t __wcstombs_chk (char *__restrict __dst, > __const wchar_t *__restrict __src, > size_t __len, size_t __dstlen) throw (); >extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) throw () __asm__ ("" "wcstombs"); > > > >extern size_t __wcstombs_chk_warn (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) throw () __asm__ ("" "__wcstombs_chk") > > > > __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t >wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) throw () > >{ > if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); > if (__len > __builtin_object_size (__dst, 2 > 1)) > return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); > } > return __wcstombs_alias (__dst, __src, __len); >} ># 883 "/usr/include/stdlib.h" 2 3 4 ># 891 "/usr/include/stdlib.h" 3 4 >} ># 153 "../condor_includes/condor_system.h" 2 > > > ># 1 "/usr/include/string.h" 1 3 4 ># 28 "/usr/include/string.h" 3 4 >extern "C" { > > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 34 "/usr/include/string.h" 2 3 4 > > > > >extern void *memcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memmove (void *__dest, __const void *__src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, > int __c, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > >extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memchr (__const void *__s, int __c, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern void *rawmemchr (__const void *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern void *memrchr (__const void *__s, int __c, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strcat (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncat (char *__restrict __dest, __const char *__restrict __src, > size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcoll (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern size_t strxfrm (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (2))); > ># 121 "/usr/include/string.h" 3 4 >extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, > __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); > > > > >extern char *strdup (__const char *__s) > throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *strndup (__const char *__string, size_t __n) > throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); ># 165 "/usr/include/string.h" 3 4 > > >extern char *strchr (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern char *strrchr (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strchrnul (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strcspn (__const char *__s, __const char *__reject) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern size_t strspn (__const char *__s, __const char *__accept) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strpbrk (__const char *__s, __const char *__accept) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strstr (__const char *__haystack, __const char *__needle) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *strtok (char *__restrict __s, __const char *__restrict __delim) > throw () __attribute__ ((__nonnull__ (2))); > > > > >extern char *__strtok_r (char *__restrict __s, > __const char *__restrict __delim, > char **__restrict __save_ptr) > throw () __attribute__ ((__nonnull__ (2, 3))); > >extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, > char **__restrict __save_ptr) > throw () __attribute__ ((__nonnull__ (2, 3))); > > > > >extern char *strcasestr (__const char *__haystack, __const char *__needle) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memmem (__const void *__haystack, size_t __haystacklen, > __const void *__needle, size_t __needlelen) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); > > > >extern void *__mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern void *mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern size_t strlen (__const char *__s) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strnlen (__const char *__string, size_t __maxlen) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strerror (int __errnum) throw (); > ># 281 "/usr/include/string.h" 3 4 >extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))); > > > > > >extern char *strerror_l (int __errnum, __locale_t __l) throw (); > > > > > >extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > > >extern void bcopy (__const void *__src, void *__dest, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > >extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *index (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern char *rindex (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > >extern int ffs (int __i) throw () __attribute__ ((__const__)); > > > > >extern int ffsl (long int __l) throw () __attribute__ ((__const__)); > >__extension__ extern int ffsll (long long int __ll) > throw () __attribute__ ((__const__)); > > > > >extern int strcasecmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int strcasecmp_l (__const char *__s1, __const char *__s2, > __locale_t __loc) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern int strncasecmp_l (__const char *__s1, __const char *__s2, > size_t __n, __locale_t __loc) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); > > > > > >extern char *strsep (char **__restrict __stringp, > __const char *__restrict __delim) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int strverscmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strsignal (int __sig) throw (); > > >extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *__stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern char *stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); > > >extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1))); ># 428 "/usr/include/string.h" 3 4 ># 1 "/usr/include/bits/string3.h" 1 3 4 ># 23 "/usr/include/bits/string3.h" 3 4 >extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters"))); ># 48 "/usr/include/bits/string3.h" 3 4 >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void * >memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len) throw () > >{ > return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void * >memmove (void *__restrict __dest, __const void *__restrict __src, size_t __len) throw () > >{ > return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void * >mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len) throw () > >{ > return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); >} ># 77 "/usr/include/bits/string3.h" 3 4 >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void * >memset (void *__dest, int __ch, size_t __len) throw () >{ > if (__builtin_constant_p (__len) && __len == 0) > { > __warn_memset_zero_len (); > return __dest; > } > return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void >bcopy (__const void *__restrict __src, void *__restrict __dest, size_t __len) throw () > >{ > (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void >bzero (void *__dest, size_t __len) throw () >{ > (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char * >strcpy (char *__restrict __dest, __const char *__restrict __src) throw () >{ > return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char * >stpcpy (char *__restrict __dest, __const char *__restrict __src) throw () >{ > return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); >} > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char * >strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __len) throw () > >{ > return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); >} > > >extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n, > size_t __destlen) throw (); >extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) throw () __asm__ ("" "stpncpy"); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char * >stpncpy (char *__dest, __const char *__src, size_t __n) throw () >{ > if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 > && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1))) > return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); > return __stpncpy_alias (__dest, __src, __n); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char * >strcat (char *__restrict __dest, __const char *__restrict __src) throw () >{ > return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char * >strncat (char *__restrict __dest, __const char *__restrict __src, size_t __len) throw () > >{ > return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); >} ># 429 "/usr/include/string.h" 2 3 4 > > > >} ># 157 "../condor_includes/condor_system.h" 2 ># 1 "/usr/include/strings.h" 1 3 4 ># 158 "../condor_includes/condor_system.h" 2 > > ># 1 "/usr/include/sys/ioctl.h" 1 3 4 ># 24 "/usr/include/sys/ioctl.h" 3 4 >extern "C" { > > ># 1 "/usr/include/bits/ioctls.h" 1 3 4 ># 24 "/usr/include/bits/ioctls.h" 3 4 ># 1 "/usr/include/asm/ioctls.h" 1 3 4 > > > ># 1 "/usr/include/asm/ioctl.h" 1 3 4 ># 1 "/usr/include/asm-generic/ioctl.h" 1 3 4 ># 51 "/usr/include/asm-generic/ioctl.h" 3 4 >extern unsigned int __invalid_size_argument_for_IOC; ># 1 "/usr/include/asm/ioctl.h" 2 3 4 ># 5 "/usr/include/asm/ioctls.h" 2 3 4 ># 25 "/usr/include/bits/ioctls.h" 2 3 4 ># 28 "/usr/include/sys/ioctl.h" 2 3 4 > > ># 1 "/usr/include/bits/ioctl-types.h" 1 3 4 ># 28 "/usr/include/bits/ioctl-types.h" 3 4 >struct winsize > { > unsigned short int ws_row; > unsigned short int ws_col; > unsigned short int ws_xpixel; > unsigned short int ws_ypixel; > }; > > >struct termio > { > unsigned short int c_iflag; > unsigned short int c_oflag; > unsigned short int c_cflag; > unsigned short int c_lflag; > unsigned char c_line; > unsigned char c_cc[8]; >}; ># 31 "/usr/include/sys/ioctl.h" 2 3 4 > > > > > > ># 1 "/usr/include/sys/ttydefaults.h" 1 3 4 ># 38 "/usr/include/sys/ioctl.h" 2 3 4 > > > > >extern int ioctl (int __fd, unsigned long int __request, ...) throw (); > >} ># 161 "../condor_includes/condor_system.h" 2 > > > ># 1 "/usr/include/sys/socket.h" 1 3 4 ># 26 "/usr/include/sys/socket.h" 3 4 >extern "C" { > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 31 "/usr/include/sys/socket.h" 2 3 4 > > > > > ># 1 "/usr/include/bits/socket.h" 1 3 4 ># 29 "/usr/include/bits/socket.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 30 "/usr/include/bits/socket.h" 2 3 4 ># 40 "/usr/include/bits/socket.h" 3 4 >enum __socket_type >{ > SOCK_STREAM = 1, > > > SOCK_DGRAM = 2, > > > SOCK_RAW = 3, > > SOCK_RDM = 4, > > SOCK_SEQPACKET = 5, > > > SOCK_PACKET = 10 > > > >}; ># 145 "/usr/include/bits/socket.h" 3 4 ># 1 "/usr/include/bits/sockaddr.h" 1 3 4 ># 29 "/usr/include/bits/sockaddr.h" 3 4 >typedef unsigned short int sa_family_t; ># 146 "/usr/include/bits/socket.h" 2 3 4 > > >struct sockaddr > { > sa_family_t sa_family; > char sa_data[14]; > }; ># 161 "/usr/include/bits/socket.h" 3 4 >struct sockaddr_storage > { > sa_family_t ss_family; > unsigned long int __ss_align; > char __ss_padding[(128 - (2 * sizeof (unsigned long int)))]; > }; > > > >enum > { > MSG_OOB = 0x01, > > MSG_PEEK = 0x02, > > MSG_DONTROUTE = 0x04, > > > > MSG_TRYHARD = MSG_DONTROUTE, > > > MSG_CTRUNC = 0x08, > > MSG_PROXY = 0x10, > > MSG_TRUNC = 0x20, > > MSG_DONTWAIT = 0x40, > > MSG_EOR = 0x80, > > MSG_WAITALL = 0x100, > > MSG_FIN = 0x200, > > MSG_SYN = 0x400, > > MSG_CONFIRM = 0x800, > > MSG_RST = 0x1000, > > MSG_ERRQUEUE = 0x2000, > > MSG_NOSIGNAL = 0x4000, > > MSG_MORE = 0x8000, > > > MSG_CMSG_CLOEXEC = 0x40000000 > > > > }; > > > > >struct msghdr > { > void *msg_name; > socklen_t msg_namelen; > > struct iovec *msg_iov; > size_t msg_iovlen; > > void *msg_control; > size_t msg_controllen; > > > > > int msg_flags; > }; > > >struct cmsghdr > { > size_t cmsg_len; > > > > > int cmsg_level; > int cmsg_type; > > __extension__ unsigned char __cmsg_data []; > > }; ># 267 "/usr/include/bits/socket.h" 3 4 >extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, > struct cmsghdr *__cmsg) throw (); > > > > >extern __inline __attribute__ ((__gnu_inline__)) struct cmsghdr * >__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) throw () >{ > if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) > > return 0; > > __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg > + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))); > if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control > + __mhdr->msg_controllen) > || ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)) > > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) > > return 0; > return __cmsg; >} > > > > >enum > { > SCM_RIGHTS = 0x01 > > > , SCM_CREDENTIALS = 0x02 > > > }; > > > >struct ucred >{ > pid_t pid; > uid_t uid; > gid_t gid; >}; ># 340 "/usr/include/bits/socket.h" 3 4 ># 1 "/usr/include/asm/socket.h" 1 3 4 > > > ># 1 "/usr/include/asm/sockios.h" 1 3 4 ># 5 "/usr/include/asm/socket.h" 2 3 4 ># 341 "/usr/include/bits/socket.h" 2 3 4 ># 374 "/usr/include/bits/socket.h" 3 4 >struct linger > { > int l_onoff; > int l_linger; > }; ># 37 "/usr/include/sys/socket.h" 2 3 4 > > > > >struct osockaddr > { > unsigned short int sa_family; > unsigned char sa_data[14]; > }; > > > > >enum >{ > SHUT_RD = 0, > > SHUT_WR, > > SHUT_RDWR > >}; ># 101 "/usr/include/sys/socket.h" 3 4 >extern int socket (int __domain, int __type, int __protocol) throw (); > > > > > >extern int socketpair (int __domain, int __type, int __protocol, > int __fds[2]) throw (); > > >extern int bind (int __fd, __const struct sockaddr * __addr, socklen_t __len) > throw (); > > >extern int getsockname (int __fd, struct sockaddr *__restrict __addr, > socklen_t *__restrict __len) throw (); ># 125 "/usr/include/sys/socket.h" 3 4 >extern int connect (int __fd, __const struct sockaddr * __addr, socklen_t __len); > > > >extern int getpeername (int __fd, struct sockaddr *__restrict __addr, > socklen_t *__restrict __len) throw (); > > > > > > >extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags); > > > > > > >extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags); > > > > > > >extern ssize_t sendto (int __fd, __const void *__buf, size_t __n, > int __flags, __const struct sockaddr * __addr, > socklen_t __addr_len); ># 162 "/usr/include/sys/socket.h" 3 4 >extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n, > int __flags, struct sockaddr *__restrict __addr, > socklen_t *__restrict __addr_len); > > > > > > > >extern ssize_t sendmsg (int __fd, __const struct msghdr *__message, > int __flags); > > > > > > >extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags); > > > > > >extern int getsockopt (int __fd, int __level, int __optname, > void *__restrict __optval, > socklen_t *__restrict __optlen) throw (); > > > > >extern int setsockopt (int __fd, int __level, int __optname, > __const void *__optval, socklen_t __optlen) throw (); > > > > > >extern int listen (int __fd, int __n) throw (); ># 210 "/usr/include/sys/socket.h" 3 4 >extern int accept (int __fd, struct sockaddr *__restrict __addr, > socklen_t *__restrict __addr_len); > > > > > > > >extern int shutdown (int __fd, int __how) throw (); > > > > >extern int sockatmark (int __fd) throw (); > > > > > > > >extern int isfdtype (int __fd, int __fdtype) throw (); > > > > > ># 1 "/usr/include/bits/socket2.h" 1 3 4 ># 24 "/usr/include/bits/socket2.h" 3 4 >extern ssize_t __recv_chk (int __fd, void *__buf, size_t __n, size_t __buflen, > int __flags); >extern ssize_t __recv_alias (int __fd, void *__buf, size_t __n, int __flags) __asm__ ("" "recv"); > >extern ssize_t __recv_chk_warn (int __fd, void *__buf, size_t __n, size_t __buflen, int __flags) __asm__ ("" "__recv_chk") > > > __attribute__((__warning__ ("recv called with bigger length than size of destination " "buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) ssize_t >recv (int __fd, void *__buf, size_t __n, int __flags) >{ > if (__builtin_object_size (__buf, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__n)) > return __recv_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags); > > if (__n > __builtin_object_size (__buf, 0)) > return __recv_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags); > } > return __recv_alias (__fd, __buf, __n, __flags); >} > >extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n, > size_t __buflen, int __flags, > struct sockaddr *__restrict __addr, > socklen_t *__restrict __addr_len); >extern ssize_t __recvfrom_alias (int __fd, void *__restrict __buf, size_t __n, int __flags, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) __asm__ ("" "recvfrom"); > > > >extern ssize_t __recvfrom_chk_warn (int __fd, void *__restrict __buf, size_t __n, size_t __buflen, int __flags, struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) __asm__ ("" "__recvfrom_chk") > > > > > __attribute__((__warning__ ("recvfrom called with bigger length than size of " "destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) ssize_t >recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags, > struct sockaddr *__restrict __addr, socklen_t *__restrict __addr_len) >{ > if (__builtin_object_size (__buf, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__n)) > return __recvfrom_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags, > __addr, __addr_len); > if (__n > __builtin_object_size (__buf, 0)) > return __recvfrom_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags, > __addr, __addr_len); > } > return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len); >} ># 239 "/usr/include/sys/socket.h" 2 3 4 > > >} ># 165 "../condor_includes/condor_system.h" 2 ># 1 "/usr/include/netdb.h" 1 3 4 ># 28 "/usr/include/netdb.h" 3 4 ># 1 "/usr/include/netinet/in.h" 1 3 4 ># 24 "/usr/include/netinet/in.h" 3 4 ># 1 "/usr/include/stdint.h" 1 3 4 ># 27 "/usr/include/stdint.h" 3 4 ># 1 "/usr/include/bits/wchar.h" 1 3 4 ># 28 "/usr/include/stdint.h" 2 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/stdint.h" 2 3 4 ># 49 "/usr/include/stdint.h" 3 4 >typedef unsigned char uint8_t; >typedef unsigned short int uint16_t; > >typedef unsigned int uint32_t; > > > > > >__extension__ >typedef unsigned long long int uint64_t; > > > > > > >typedef signed char int_least8_t; >typedef short int int_least16_t; >typedef int int_least32_t; > > > >__extension__ >typedef long long int int_least64_t; > > > >typedef unsigned char uint_least8_t; >typedef unsigned short int uint_least16_t; >typedef unsigned int uint_least32_t; > > > >__extension__ >typedef unsigned long long int uint_least64_t; > > > > > > >typedef signed char int_fast8_t; > > > > > >typedef int int_fast16_t; >typedef int int_fast32_t; >__extension__ >typedef long long int int_fast64_t; > > > >typedef unsigned char uint_fast8_t; > > > > > >typedef unsigned int uint_fast16_t; >typedef unsigned int uint_fast32_t; >__extension__ >typedef unsigned long long int uint_fast64_t; ># 129 "/usr/include/stdint.h" 3 4 >typedef unsigned int uintptr_t; ># 138 "/usr/include/stdint.h" 3 4 >__extension__ >typedef long long int intmax_t; >__extension__ >typedef unsigned long long int uintmax_t; ># 25 "/usr/include/netinet/in.h" 2 3 4 > > > > >extern "C" { > > >enum > { > IPPROTO_IP = 0, > > IPPROTO_HOPOPTS = 0, > > IPPROTO_ICMP = 1, > > IPPROTO_IGMP = 2, > > IPPROTO_IPIP = 4, > > IPPROTO_TCP = 6, > > IPPROTO_EGP = 8, > > IPPROTO_PUP = 12, > > IPPROTO_UDP = 17, > > IPPROTO_IDP = 22, > > IPPROTO_TP = 29, > > IPPROTO_IPV6 = 41, > > IPPROTO_ROUTING = 43, > > IPPROTO_FRAGMENT = 44, > > IPPROTO_RSVP = 46, > > IPPROTO_GRE = 47, > > IPPROTO_ESP = 50, > > IPPROTO_AH = 51, > > IPPROTO_ICMPV6 = 58, > > IPPROTO_NONE = 59, > > IPPROTO_DSTOPTS = 60, > > IPPROTO_MTP = 92, > > IPPROTO_ENCAP = 98, > > IPPROTO_PIM = 103, > > IPPROTO_COMP = 108, > > IPPROTO_SCTP = 132, > > IPPROTO_RAW = 255, > > IPPROTO_MAX > }; > > > >typedef uint16_t in_port_t; > > >enum > { > IPPORT_ECHO = 7, > IPPORT_DISCARD = 9, > IPPORT_SYSTAT = 11, > IPPORT_DAYTIME = 13, > IPPORT_NETSTAT = 15, > IPPORT_FTP = 21, > IPPORT_TELNET = 23, > IPPORT_SMTP = 25, > IPPORT_TIMESERVER = 37, > IPPORT_NAMESERVER = 42, > IPPORT_WHOIS = 43, > IPPORT_MTP = 57, > > IPPORT_TFTP = 69, > IPPORT_RJE = 77, > IPPORT_FINGER = 79, > IPPORT_TTYLINK = 87, > IPPORT_SUPDUP = 95, > > > IPPORT_EXECSERVER = 512, > IPPORT_LOGINSERVER = 513, > IPPORT_CMDSERVER = 514, > IPPORT_EFSSERVER = 520, > > > IPPORT_BIFFUDP = 512, > IPPORT_WHOSERVER = 513, > IPPORT_ROUTESERVER = 520, > > > IPPORT_RESERVED = 1024, > > > IPPORT_USERRESERVED = 5000 > }; > > > >typedef uint32_t in_addr_t; >struct in_addr > { > in_addr_t s_addr; > }; ># 194 "/usr/include/netinet/in.h" 3 4 >struct in6_addr > { > union > { > uint8_t __u6_addr8[16]; > > uint16_t __u6_addr16[8]; > uint32_t __u6_addr32[4]; > > } __in6_u; > > > > > > }; > >extern const struct in6_addr in6addr_any; >extern const struct in6_addr in6addr_loopback; ># 221 "/usr/include/netinet/in.h" 3 4 >struct sockaddr_in > { > sa_family_t sin_family; > in_port_t sin_port; > struct in_addr sin_addr; > > > unsigned char sin_zero[sizeof (struct sockaddr) - > (sizeof (unsigned short int)) - > sizeof (in_port_t) - > sizeof (struct in_addr)]; > }; > > >struct sockaddr_in6 > { > sa_family_t sin6_family; > in_port_t sin6_port; > uint32_t sin6_flowinfo; > struct in6_addr sin6_addr; > uint32_t sin6_scope_id; > }; > > > > >struct ip_mreq > { > > struct in_addr imr_multiaddr; > > > struct in_addr imr_interface; > }; > >struct ip_mreq_source > { > > struct in_addr imr_multiaddr; > > > struct in_addr imr_interface; > > > struct in_addr imr_sourceaddr; > }; > > > > >struct ipv6_mreq > { > > struct in6_addr ipv6mr_multiaddr; > > > unsigned int ipv6mr_interface; > }; > > > > >struct group_req > { > > uint32_t gr_interface; > > > struct sockaddr_storage gr_group; > }; > >struct group_source_req > { > > uint32_t gsr_interface; > > > struct sockaddr_storage gsr_group; > > > struct sockaddr_storage gsr_source; > }; > > > >struct ip_msfilter > { > > struct in_addr imsf_multiaddr; > > > struct in_addr imsf_interface; > > > uint32_t imsf_fmode; > > > uint32_t imsf_numsrc; > > struct in_addr imsf_slist[1]; > }; > > > > > >struct group_filter > { > > uint32_t gf_interface; > > > struct sockaddr_storage gf_group; > > > uint32_t gf_fmode; > > > uint32_t gf_numsrc; > > struct sockaddr_storage gf_slist[1]; >}; ># 352 "/usr/include/netinet/in.h" 3 4 ># 1 "/usr/include/bits/in.h" 1 3 4 ># 85 "/usr/include/bits/in.h" 3 4 >struct ip_opts > { > struct in_addr ip_dst; > char ip_opts[40]; > }; > > >struct ip_mreqn > { > struct in_addr imr_multiaddr; > struct in_addr imr_address; > int imr_ifindex; > }; > > >struct in_pktinfo > { > int ipi_ifindex; > struct in_addr ipi_spec_dst; > struct in_addr ipi_addr; > }; ># 353 "/usr/include/netinet/in.h" 2 3 4 ># 361 "/usr/include/netinet/in.h" 3 4 >extern uint32_t ntohl (uint32_t __netlong) throw () __attribute__ ((__const__)); >extern uint16_t ntohs (uint16_t __netshort) > throw () __attribute__ ((__const__)); >extern uint32_t htonl (uint32_t __hostlong) > throw () __attribute__ ((__const__)); >extern uint16_t htons (uint16_t __hostshort) > throw () __attribute__ ((__const__)); > > > > ># 1 "/usr/include/bits/byteswap.h" 1 3 4 ># 373 "/usr/include/netinet/in.h" 2 3 4 ># 436 "/usr/include/netinet/in.h" 3 4 >extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) throw (); > > >extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) > throw (); ># 467 "/usr/include/netinet/in.h" 3 4 >struct in6_pktinfo > { > struct in6_addr ipi6_addr; > unsigned int ipi6_ifindex; > }; > > >struct ip6_mtuinfo > { > struct sockaddr_in6 ip6m_addr; > uint32_t ip6m_mtu; > }; > > > >extern int inet6_option_space (int __nbytes) > throw () __attribute__ ((__deprecated__)); >extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp, > int __type) throw () __attribute__ ((__deprecated__)); >extern int inet6_option_append (struct cmsghdr *__cmsg, > __const uint8_t *__typep, int __multx, > int __plusy) throw () __attribute__ ((__deprecated__)); >extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen, > int __multx, int __plusy) > throw () __attribute__ ((__deprecated__)); >extern int inet6_option_next (__const struct cmsghdr *__cmsg, > uint8_t **__tptrp) > throw () __attribute__ ((__deprecated__)); >extern int inet6_option_find (__const struct cmsghdr *__cmsg, > uint8_t **__tptrp, int __type) > throw () __attribute__ ((__deprecated__)); > > > >extern int inet6_opt_init (void *__extbuf, socklen_t __extlen) throw (); >extern int inet6_opt_append (void *__extbuf, socklen_t __extlen, int __offset, > uint8_t __type, socklen_t __len, uint8_t __align, > void **__databufp) throw (); >extern int inet6_opt_finish (void *__extbuf, socklen_t __extlen, int __offset) > throw (); >extern int inet6_opt_set_val (void *__databuf, int __offset, void *__val, > socklen_t __vallen) throw (); >extern int inet6_opt_next (void *__extbuf, socklen_t __extlen, int __offset, > uint8_t *__typep, socklen_t *__lenp, > void **__databufp) throw (); >extern int inet6_opt_find (void *__extbuf, socklen_t __extlen, int __offset, > uint8_t __type, socklen_t *__lenp, > void **__databufp) throw (); >extern int inet6_opt_get_val (void *__databuf, int __offset, void *__val, > socklen_t __vallen) throw (); > > > >extern socklen_t inet6_rth_space (int __type, int __segments) throw (); >extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type, > int __segments) throw (); >extern int inet6_rth_add (void *__bp, __const struct in6_addr *__addr) throw (); >extern int inet6_rth_reverse (__const void *__in, void *__out) throw (); >extern int inet6_rth_segments (__const void *__bp) throw (); >extern struct in6_addr *inet6_rth_getaddr (__const void *__bp, int __index) > throw (); > > > > > >extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr, > struct in_addr __group, uint32_t *__fmode, > uint32_t *__numsrc, struct in_addr *__slist) > throw (); > > >extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr, > struct in_addr __group, uint32_t __fmode, > uint32_t __numsrc, > __const struct in_addr *__slist) > throw (); > > > >extern int getsourcefilter (int __s, uint32_t __interface_addr, > __const struct sockaddr *__group, > socklen_t __grouplen, uint32_t *__fmode, > uint32_t *__numsrc, > struct sockaddr_storage *__slist) throw (); > > >extern int setsourcefilter (int __s, uint32_t __interface_addr, > __const struct sockaddr *__group, > socklen_t __grouplen, uint32_t __fmode, > uint32_t __numsrc, > __const struct sockaddr_storage *__slist) throw (); > > >} ># 29 "/usr/include/netdb.h" 2 3 4 > > > > ># 1 "/usr/include/rpc/netdb.h" 1 3 4 ># 42 "/usr/include/rpc/netdb.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 43 "/usr/include/rpc/netdb.h" 2 3 4 > >extern "C" { > >struct rpcent >{ > char *r_name; > char **r_aliases; > int r_number; >}; > >extern void setrpcent (int __stayopen) throw (); >extern void endrpcent (void) throw (); >extern struct rpcent *getrpcbyname (__const char *__name) throw (); >extern struct rpcent *getrpcbynumber (int __number) throw (); >extern struct rpcent *getrpcent (void) throw (); > > >extern int getrpcbyname_r (__const char *__name, struct rpcent *__result_buf, > char *__buffer, size_t __buflen, > struct rpcent **__result) throw (); > >extern int getrpcbynumber_r (int __number, struct rpcent *__result_buf, > char *__buffer, size_t __buflen, > struct rpcent **__result) throw (); > >extern int getrpcent_r (struct rpcent *__result_buf, char *__buffer, > size_t __buflen, struct rpcent **__result) throw (); > > >} ># 34 "/usr/include/netdb.h" 2 3 4 > > > > ># 1 "/usr/include/bits/siginfo.h" 1 3 4 ># 25 "/usr/include/bits/siginfo.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 26 "/usr/include/bits/siginfo.h" 2 3 4 ># 39 "/usr/include/netdb.h" 2 3 4 > ># 1 "/usr/include/time.h" 1 3 4 ># 41 "/usr/include/netdb.h" 2 3 4 > > ># 1 "/usr/include/bits/netdb.h" 1 3 4 ># 27 "/usr/include/bits/netdb.h" 3 4 >struct netent >{ > char *n_name; > char **n_aliases; > int n_addrtype; > uint32_t n_net; >}; ># 44 "/usr/include/netdb.h" 2 3 4 ># 54 "/usr/include/netdb.h" 3 4 >extern "C" { > > > > > > >extern int *__h_errno_location (void) throw () __attribute__ ((__const__)); ># 91 "/usr/include/netdb.h" 3 4 >extern void herror (__const char *__str) throw (); > > >extern __const char *hstrerror (int __err_num) throw (); > > > > >struct hostent >{ > char *h_name; > char **h_aliases; > int h_addrtype; > int h_length; > char **h_addr_list; > > > >}; > > > > > > >extern void sethostent (int __stay_open); > > > > > >extern void endhostent (void); > > > > > > >extern struct hostent *gethostent (void); > > > > > > >extern struct hostent *gethostbyaddr (__const void *__addr, __socklen_t __len, > int __type); > > > > > >extern struct hostent *gethostbyname (__const char *__name); ># 154 "/usr/include/netdb.h" 3 4 >extern struct hostent *gethostbyname2 (__const char *__name, int __af); ># 166 "/usr/include/netdb.h" 3 4 >extern int gethostent_r (struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop); > >extern int gethostbyaddr_r (__const void *__restrict __addr, __socklen_t __len, > int __type, > struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop); > >extern int gethostbyname_r (__const char *__restrict __name, > struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop); > >extern int gethostbyname2_r (__const char *__restrict __name, int __af, > struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop); ># 197 "/usr/include/netdb.h" 3 4 >extern void setnetent (int __stay_open); > > > > > >extern void endnetent (void); > > > > > > >extern struct netent *getnetent (void); > > > > > > >extern struct netent *getnetbyaddr (uint32_t __net, int __type); > > > > > >extern struct netent *getnetbyname (__const char *__name); ># 236 "/usr/include/netdb.h" 3 4 >extern int getnetent_r (struct netent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct netent **__restrict __result, > int *__restrict __h_errnop); > >extern int getnetbyaddr_r (uint32_t __net, int __type, > struct netent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct netent **__restrict __result, > int *__restrict __h_errnop); > >extern int getnetbyname_r (__const char *__restrict __name, > struct netent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct netent **__restrict __result, > int *__restrict __h_errnop); > > > > >struct servent >{ > char *s_name; > char **s_aliases; > int s_port; > char *s_proto; >}; > > > > > > >extern void setservent (int __stay_open); > > > > > >extern void endservent (void); > > > > > > >extern struct servent *getservent (void); > > > > > > >extern struct servent *getservbyname (__const char *__name, > __const char *__proto); > > > > > > >extern struct servent *getservbyport (int __port, __const char *__proto); ># 308 "/usr/include/netdb.h" 3 4 >extern int getservent_r (struct servent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct servent **__restrict __result); > >extern int getservbyname_r (__const char *__restrict __name, > __const char *__restrict __proto, > struct servent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct servent **__restrict __result); > >extern int getservbyport_r (int __port, __const char *__restrict __proto, > struct servent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct servent **__restrict __result); > > > > >struct protoent >{ > char *p_name; > char **p_aliases; > int p_proto; >}; > > > > > > >extern void setprotoent (int __stay_open); > > > > > >extern void endprotoent (void); > > > > > > >extern struct protoent *getprotoent (void); > > > > > >extern struct protoent *getprotobyname (__const char *__name); > > > > > >extern struct protoent *getprotobynumber (int __proto); ># 374 "/usr/include/netdb.h" 3 4 >extern int getprotoent_r (struct protoent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct protoent **__restrict __result); > >extern int getprotobyname_r (__const char *__restrict __name, > struct protoent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct protoent **__restrict __result); > >extern int getprotobynumber_r (int __proto, > struct protoent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct protoent **__restrict __result); ># 395 "/usr/include/netdb.h" 3 4 >extern int setnetgrent (__const char *__netgroup); > > > > > > > >extern void endnetgrent (void); ># 412 "/usr/include/netdb.h" 3 4 >extern int getnetgrent (char **__restrict __hostp, > char **__restrict __userp, > char **__restrict __domainp); ># 423 "/usr/include/netdb.h" 3 4 >extern int innetgr (__const char *__netgroup, __const char *__host, > __const char *__user, __const char *domain); > > > > > > > >extern int getnetgrent_r (char **__restrict __hostp, > char **__restrict __userp, > char **__restrict __domainp, > char *__restrict __buffer, size_t __buflen); ># 451 "/usr/include/netdb.h" 3 4 >extern int rcmd (char **__restrict __ahost, unsigned short int __rport, > __const char *__restrict __locuser, > __const char *__restrict __remuser, > __const char *__restrict __cmd, int *__restrict __fd2p); ># 463 "/usr/include/netdb.h" 3 4 >extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport, > __const char *__restrict __locuser, > __const char *__restrict __remuser, > __const char *__restrict __cmd, int *__restrict __fd2p, > sa_family_t __af); ># 479 "/usr/include/netdb.h" 3 4 >extern int rexec (char **__restrict __ahost, int __rport, > __const char *__restrict __name, > __const char *__restrict __pass, > __const char *__restrict __cmd, int *__restrict __fd2p); ># 491 "/usr/include/netdb.h" 3 4 >extern int rexec_af (char **__restrict __ahost, int __rport, > __const char *__restrict __name, > __const char *__restrict __pass, > __const char *__restrict __cmd, int *__restrict __fd2p, > sa_family_t __af); ># 505 "/usr/include/netdb.h" 3 4 >extern int ruserok (__const char *__rhost, int __suser, > __const char *__remuser, __const char *__locuser); ># 515 "/usr/include/netdb.h" 3 4 >extern int ruserok_af (__const char *__rhost, int __suser, > __const char *__remuser, __const char *__locuser, > sa_family_t __af); ># 527 "/usr/include/netdb.h" 3 4 >extern int rresvport (int *__alport); ># 536 "/usr/include/netdb.h" 3 4 >extern int rresvport_af (int *__alport, sa_family_t __af); > > > > > > >struct addrinfo >{ > int ai_flags; > int ai_family; > int ai_socktype; > int ai_protocol; > socklen_t ai_addrlen; > struct sockaddr *ai_addr; > char *ai_canonname; > struct addrinfo *ai_next; >}; > > > >struct gaicb >{ > const char *ar_name; > const char *ar_service; > const struct addrinfo *ar_request; > struct addrinfo *ar_result; > > int __return; > int __unused[5]; >}; ># 638 "/usr/include/netdb.h" 3 4 >extern int getaddrinfo (__const char *__restrict __name, > __const char *__restrict __service, > __const struct addrinfo *__restrict __req, > struct addrinfo **__restrict __pai); > > >extern void freeaddrinfo (struct addrinfo *__ai) throw (); > > >extern __const char *gai_strerror (int __ecode) throw (); > > > > > >extern int getnameinfo (__const struct sockaddr *__restrict __sa, > socklen_t __salen, char *__restrict __host, > socklen_t __hostlen, char *__restrict __serv, > socklen_t __servlen, unsigned int __flags); ># 668 "/usr/include/netdb.h" 3 4 >extern int getaddrinfo_a (int __mode, struct gaicb *__list[], > int __ent, struct sigevent *__restrict __sig); ># 679 "/usr/include/netdb.h" 3 4 >extern int gai_suspend (__const struct gaicb *__const __list[], int __ent, > __const struct timespec *__timeout); > > >extern int gai_error (struct gaicb *__req) throw (); > > >extern int gai_cancel (struct gaicb *__gaicbp) throw (); > > >} ># 166 "../condor_includes/condor_system.h" 2 > ># 1 "/usr/include/netinet/tcp.h" 1 3 4 ># 92 "/usr/include/netinet/tcp.h" 3 4 >struct tcphdr > { > u_int16_t source; > u_int16_t dest; > u_int32_t seq; > u_int32_t ack_seq; > > u_int16_t res1:4; > u_int16_t doff:4; > u_int16_t fin:1; > u_int16_t syn:1; > u_int16_t rst:1; > u_int16_t psh:1; > u_int16_t ack:1; > u_int16_t urg:1; > u_int16_t res2:2; ># 121 "/usr/include/netinet/tcp.h" 3 4 > u_int16_t window; > u_int16_t check; > u_int16_t urg_ptr; >}; > > >enum >{ > TCP_ESTABLISHED = 1, > TCP_SYN_SENT, > TCP_SYN_RECV, > TCP_FIN_WAIT1, > TCP_FIN_WAIT2, > TCP_TIME_WAIT, > TCP_CLOSE, > TCP_CLOSE_WAIT, > TCP_LAST_ACK, > TCP_LISTEN, > TCP_CLOSING >}; ># 179 "/usr/include/netinet/tcp.h" 3 4 >enum tcp_ca_state >{ > TCP_CA_Open = 0, > TCP_CA_Disorder = 1, > TCP_CA_CWR = 2, > TCP_CA_Recovery = 3, > TCP_CA_Loss = 4 >}; > >struct tcp_info >{ > u_int8_t tcpi_state; > u_int8_t tcpi_ca_state; > u_int8_t tcpi_retransmits; > u_int8_t tcpi_probes; > u_int8_t tcpi_backoff; > u_int8_t tcpi_options; > u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; > > u_int32_t tcpi_rto; > u_int32_t tcpi_ato; > u_int32_t tcpi_snd_mss; > u_int32_t tcpi_rcv_mss; > > u_int32_t tcpi_unacked; > u_int32_t tcpi_sacked; > u_int32_t tcpi_lost; > u_int32_t tcpi_retrans; > u_int32_t tcpi_fackets; > > > u_int32_t tcpi_last_data_sent; > u_int32_t tcpi_last_ack_sent; > u_int32_t tcpi_last_data_recv; > u_int32_t tcpi_last_ack_recv; > > > u_int32_t tcpi_pmtu; > u_int32_t tcpi_rcv_ssthresh; > u_int32_t tcpi_rtt; > u_int32_t tcpi_rttvar; > u_int32_t tcpi_snd_ssthresh; > u_int32_t tcpi_snd_cwnd; > u_int32_t tcpi_advmss; > u_int32_t tcpi_reordering; > > u_int32_t tcpi_rcv_rtt; > u_int32_t tcpi_rcv_space; > > u_int32_t tcpi_total_retrans; >}; > > > > > >struct tcp_md5sig >{ > struct sockaddr_storage tcpm_addr; > u_int16_t __tcpm_pad1; > u_int16_t tcpm_keylen; > u_int32_t __tcpm_pad2; > u_int8_t tcpm_key[80]; >}; ># 168 "../condor_includes/condor_system.h" 2 ># 1 "/usr/include/arpa/inet.h" 1 3 4 ># 31 "/usr/include/arpa/inet.h" 3 4 >extern "C" { > > > >extern in_addr_t inet_addr (__const char *__cp) throw (); > > >extern in_addr_t inet_lnaof (struct in_addr __in) throw (); > > > >extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host) > throw (); > > >extern in_addr_t inet_netof (struct in_addr __in) throw (); > > > >extern in_addr_t inet_network (__const char *__cp) throw (); > > > >extern char *inet_ntoa (struct in_addr __in) throw (); > > > > >extern int inet_pton (int __af, __const char *__restrict __cp, > void *__restrict __buf) throw (); > > > > >extern __const char *inet_ntop (int __af, __const void *__restrict __cp, > char *__restrict __buf, socklen_t __len) > throw (); > > > > > > >extern int inet_aton (__const char *__cp, struct in_addr *__inp) throw (); > > > >extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) throw (); > > > > >extern char *inet_net_ntop (int __af, __const void *__cp, int __bits, > char *__buf, size_t __len) throw (); > > > > >extern int inet_net_pton (int __af, __const char *__cp, > void *__buf, size_t __len) throw (); > > > > >extern unsigned int inet_nsap_addr (__const char *__cp, > unsigned char *__buf, int __len) throw (); > > > >extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp, > char *__buf) throw (); > > >} ># 169 "../condor_includes/condor_system.h" 2 ># 1 "/usr/include/sys/utsname.h" 1 3 4 ># 28 "/usr/include/sys/utsname.h" 3 4 >extern "C" { > ># 1 "/usr/include/bits/utsname.h" 1 3 4 ># 31 "/usr/include/sys/utsname.h" 2 3 4 ># 49 "/usr/include/sys/utsname.h" 3 4 >struct utsname > { > > char sysname[65]; > > > char nodename[65]; > > > char release[65]; > > char version[65]; > > > char machine[65]; > > > > > char domainname[65]; > > > > > }; ># 82 "/usr/include/sys/utsname.h" 3 4 >extern int uname (struct utsname *__name) throw (); > > >} ># 170 "../condor_includes/condor_system.h" 2 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/limits.h" 1 3 4 ># 172 "../condor_includes/condor_system.h" 2 ># 1 "/usr/include/ctype.h" 1 3 4 ># 30 "/usr/include/ctype.h" 3 4 >extern "C" { ># 48 "/usr/include/ctype.h" 3 4 >enum >{ > _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), > _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), > _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), > _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), > _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), > _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), > _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), > _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), > _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), > _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), > _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), > _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) >}; ># 81 "/usr/include/ctype.h" 3 4 >extern __const unsigned short int **__ctype_b_loc (void) > throw () __attribute__ ((__const)); >extern __const __int32_t **__ctype_tolower_loc (void) > throw () __attribute__ ((__const)); >extern __const __int32_t **__ctype_toupper_loc (void) > throw () __attribute__ ((__const)); ># 96 "/usr/include/ctype.h" 3 4 > > > > > > >extern int isalnum (int) throw (); >extern int isalpha (int) throw (); >extern int iscntrl (int) throw (); >extern int isdigit (int) throw (); >extern int islower (int) throw (); >extern int isgraph (int) throw (); >extern int isprint (int) throw (); >extern int ispunct (int) throw (); >extern int isspace (int) throw (); >extern int isupper (int) throw (); >extern int isxdigit (int) throw (); > > > >extern int tolower (int __c) throw (); > > >extern int toupper (int __c) throw (); > > > > > > > > >extern int isblank (int) throw (); > > > > > > >extern int isctype (int __c, int __mask) throw (); > > > > > > >extern int isascii (int __c) throw (); > > > >extern int toascii (int __c) throw (); > > > >extern int _toupper (int) throw (); >extern int _tolower (int) throw (); ># 247 "/usr/include/ctype.h" 3 4 >extern int isalnum_l (int, __locale_t) throw (); >extern int isalpha_l (int, __locale_t) throw (); >extern int iscntrl_l (int, __locale_t) throw (); >extern int isdigit_l (int, __locale_t) throw (); >extern int islower_l (int, __locale_t) throw (); >extern int isgraph_l (int, __locale_t) throw (); >extern int isprint_l (int, __locale_t) throw (); >extern int ispunct_l (int, __locale_t) throw (); >extern int isspace_l (int, __locale_t) throw (); >extern int isupper_l (int, __locale_t) throw (); >extern int isxdigit_l (int, __locale_t) throw (); > >extern int isblank_l (int, __locale_t) throw (); > > > >extern int __tolower_l (int __c, __locale_t __l) throw (); >extern int tolower_l (int __c, __locale_t __l) throw (); > > >extern int __toupper_l (int __c, __locale_t __l) throw (); >extern int toupper_l (int __c, __locale_t __l) throw (); ># 323 "/usr/include/ctype.h" 3 4 >} ># 173 "../condor_includes/condor_system.h" 2 > ># 1 "/usr/include/errno.h" 1 3 4 ># 32 "/usr/include/errno.h" 3 4 >extern "C" { > > > ># 1 "/usr/include/bits/errno.h" 1 3 4 ># 25 "/usr/include/bits/errno.h" 3 4 ># 1 "/usr/include/linux/errno.h" 1 3 4 > > > ># 1 "/usr/include/asm/errno.h" 1 3 4 ># 1 "/usr/include/asm-generic/errno.h" 1 3 4 > > > ># 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 ># 5 "/usr/include/asm-generic/errno.h" 2 3 4 ># 1 "/usr/include/asm/errno.h" 2 3 4 ># 5 "/usr/include/linux/errno.h" 2 3 4 ># 26 "/usr/include/bits/errno.h" 2 3 4 ># 43 "/usr/include/bits/errno.h" 3 4 >extern int *__errno_location (void) throw () __attribute__ ((__const__)); ># 37 "/usr/include/errno.h" 2 3 4 ># 55 "/usr/include/errno.h" 3 4 >extern char *program_invocation_name, *program_invocation_short_name; > > > >} ># 69 "/usr/include/errno.h" 3 4 >typedef int error_t; ># 175 "../condor_includes/condor_system.h" 2 ># 1 "/usr/include/pwd.h" 1 3 4 ># 28 "/usr/include/pwd.h" 3 4 >extern "C" { > > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 34 "/usr/include/pwd.h" 2 3 4 ># 50 "/usr/include/pwd.h" 3 4 >struct passwd >{ > char *pw_name; > char *pw_passwd; > __uid_t pw_uid; > __gid_t pw_gid; > char *pw_gecos; > char *pw_dir; > char *pw_shell; >}; ># 73 "/usr/include/pwd.h" 3 4 >extern void setpwent (void); > > > > > >extern void endpwent (void); > > > > > >extern struct passwd *getpwent (void); ># 95 "/usr/include/pwd.h" 3 4 >extern struct passwd *fgetpwent (FILE *__stream); > > > > > > > >extern int putpwent (__const struct passwd *__restrict __p, > FILE *__restrict __f); > > > > > > >extern struct passwd *getpwuid (__uid_t __uid); > > > > > >extern struct passwd *getpwnam (__const char *__name); ># 140 "/usr/include/pwd.h" 3 4 >extern int getpwent_r (struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result); > > >extern int getpwuid_r (__uid_t __uid, > struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result); > >extern int getpwnam_r (__const char *__restrict __name, > struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result); ># 164 "/usr/include/pwd.h" 3 4 >extern int fgetpwent_r (FILE *__restrict __stream, > struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result); ># 181 "/usr/include/pwd.h" 3 4 >extern int getpw (__uid_t __uid, char *__buffer); > > >} ># 176 "../condor_includes/condor_system.h" 2 ># 1 "/usr/include/time.h" 1 3 4 ># 31 "/usr/include/time.h" 3 4 >extern "C" { > > > > > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 40 "/usr/include/time.h" 2 3 4 > > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 44 "/usr/include/time.h" 2 3 4 ># 132 "/usr/include/time.h" 3 4 > > >struct tm >{ > int tm_sec; > int tm_min; > int tm_hour; > int tm_mday; > int tm_mon; > int tm_year; > int tm_wday; > int tm_yday; > int tm_isdst; > > > long int tm_gmtoff; > __const char *tm_zone; > > > > >}; > > > > > > > > >struct itimerspec > { > struct timespec it_interval; > struct timespec it_value; > }; > > >struct sigevent; ># 181 "/usr/include/time.h" 3 4 > > > >extern clock_t clock (void) throw (); > > >extern time_t time (time_t *__timer) throw (); > > >extern double difftime (time_t __time1, time_t __time0) > throw () __attribute__ ((__const__)); > > >extern time_t mktime (struct tm *__tp) throw (); > > > > > >extern size_t strftime (char *__restrict __s, size_t __maxsize, > __const char *__restrict __format, > __const struct tm *__restrict __tp) throw (); > > > > > >extern char *strptime (__const char *__restrict __s, > __const char *__restrict __fmt, struct tm *__tp) > throw (); > > > > > > > >extern size_t strftime_l (char *__restrict __s, size_t __maxsize, > __const char *__restrict __format, > __const struct tm *__restrict __tp, > __locale_t __loc) throw (); > >extern char *strptime_l (__const char *__restrict __s, > __const char *__restrict __fmt, struct tm *__tp, > __locale_t __loc) throw (); > > > > > > >extern struct tm *gmtime (__const time_t *__timer) throw (); > > > >extern struct tm *localtime (__const time_t *__timer) throw (); > > > > > >extern struct tm *gmtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) throw (); > > > >extern struct tm *localtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) throw (); > > > > > >extern char *asctime (__const struct tm *__tp) throw (); > > >extern char *ctime (__const time_t *__timer) throw (); > > > > > > > >extern char *asctime_r (__const struct tm *__restrict __tp, > char *__restrict __buf) throw (); > > >extern char *ctime_r (__const time_t *__restrict __timer, > char *__restrict __buf) throw (); > > > > >extern char *__tzname[2]; >extern int __daylight; >extern long int __timezone; > > > > >extern char *tzname[2]; > > > >extern void tzset (void) throw (); > > > >extern int daylight; >extern long int timezone; > > > > > >extern int stime (__const time_t *__when) throw (); ># 312 "/usr/include/time.h" 3 4 >extern time_t timegm (struct tm *__tp) throw (); > > >extern time_t timelocal (struct tm *__tp) throw (); > > >extern int dysize (int __year) throw () __attribute__ ((__const__)); ># 327 "/usr/include/time.h" 3 4 >extern int nanosleep (__const struct timespec *__requested_time, > struct timespec *__remaining); > > > >extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); > > >extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); > > >extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) > throw (); > > > > > > >extern int clock_nanosleep (clockid_t __clock_id, int __flags, > __const struct timespec *__req, > struct timespec *__rem); > > >extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); > > > > >extern int timer_create (clockid_t __clock_id, > struct sigevent *__restrict __evp, > timer_t *__restrict __timerid) throw (); > > >extern int timer_delete (timer_t __timerid) throw (); > > >extern int timer_settime (timer_t __timerid, int __flags, > __const struct itimerspec *__restrict __value, > struct itimerspec *__restrict __ovalue) throw (); > > >extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) > throw (); > > >extern int timer_getoverrun (timer_t __timerid) throw (); ># 389 "/usr/include/time.h" 3 4 >extern int getdate_err; ># 398 "/usr/include/time.h" 3 4 >extern struct tm *getdate (__const char *__string); ># 412 "/usr/include/time.h" 3 4 >extern int getdate_r (__const char *__restrict __string, > struct tm *__restrict __resbufp); > > >} ># 177 "../condor_includes/condor_system.h" 2 > ># 1 "/usr/include/sys/times.h" 1 3 4 ># 32 "/usr/include/sys/times.h" 3 4 >extern "C" { > > >struct tms > { > clock_t tms_utime; > clock_t tms_stime; > > clock_t tms_cutime; > clock_t tms_cstime; > }; > > > > > > >extern clock_t times (struct tms *__buffer) throw (); > >} ># 179 "../condor_includes/condor_system.h" 2 ># 1 "/usr/include/rpc/types.h" 1 3 4 ># 36 "/usr/include/rpc/types.h" 3 4 >typedef int bool_t; >typedef int enum_t; > >typedef unsigned long rpcprog_t; >typedef unsigned long rpcvers_t; >typedef unsigned long rpcproc_t; >typedef unsigned long rpcprot_t; >typedef unsigned long rpcport_t; ># 180 "../condor_includes/condor_system.h" 2 > ># 1 "/usr/include/values.h" 1 3 4 ># 28 "/usr/include/values.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/limits.h" 1 3 4 ># 29 "/usr/include/values.h" 2 3 4 ># 52 "/usr/include/values.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/float.h" 1 3 4 ># 53 "/usr/include/values.h" 2 3 4 ># 182 "../condor_includes/condor_system.h" 2 > ># 1 "/usr/include/math.h" 1 3 4 ># 30 "/usr/include/math.h" 3 4 >extern "C" { > > > ># 1 "/usr/include/bits/huge_val.h" 1 3 4 ># 35 "/usr/include/math.h" 2 3 4 > ># 1 "/usr/include/bits/huge_valf.h" 1 3 4 ># 37 "/usr/include/math.h" 2 3 4 ># 1 "/usr/include/bits/huge_vall.h" 1 3 4 ># 38 "/usr/include/math.h" 2 3 4 > > ># 1 "/usr/include/bits/inf.h" 1 3 4 ># 41 "/usr/include/math.h" 2 3 4 > > ># 1 "/usr/include/bits/nan.h" 1 3 4 ># 44 "/usr/include/math.h" 2 3 4 > > > ># 1 "/usr/include/bits/mathdef.h" 1 3 4 ># 36 "/usr/include/bits/mathdef.h" 3 4 >typedef long double float_t; > >typedef long double double_t; ># 48 "/usr/include/math.h" 2 3 4 ># 71 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern double acos (double __x) throw (); extern double __acos (double __x) throw (); > >extern double asin (double __x) throw (); extern double __asin (double __x) throw (); > >extern double atan (double __x) throw (); extern double __atan (double __x) throw (); > >extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); > > >extern double cos (double __x) throw (); extern double __cos (double __x) throw (); > >extern double sin (double __x) throw (); extern double __sin (double __x) throw (); > >extern double tan (double __x) throw (); extern double __tan (double __x) throw (); > > > > >extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); > >extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); > >extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); > > > > >extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw (); > > > > > > >extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); > >extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); > >extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); > > > > > > > >extern double exp (double __x) throw (); extern double __exp (double __x) throw (); > > >extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); > > >extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); > > >extern double log (double __x) throw (); extern double __log (double __x) throw (); > > >extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); > > >extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw (); > > > > >extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); > >extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw (); > > > > > >extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); > > >extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); > > >extern double logb (double __x) throw (); extern double __logb (double __x) throw (); > > > > > > >extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); > > >extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); > > > > > > > > >extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); > > >extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); > > > > > >extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); > > > > > > >extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); > > > > > > > > >extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); > > >extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); > > >extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); > > >extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); > > > > >extern int __isinf (double __value) throw () __attribute__ ((__const__)); > > >extern int __finite (double __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinf (double __value) throw () __attribute__ ((__const__)); > > >extern int finite (double __value) throw () __attribute__ ((__const__)); > > >extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); > > > >extern double significand (double __x) throw (); extern double __significand (double __x) throw (); > > > > > >extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); > > > > > > >extern double nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnan (double __value) throw () __attribute__ ((__const__)); > > > >extern int isnan (double __value) throw () __attribute__ ((__const__)); > > >extern double j0 (double) throw (); extern double __j0 (double) throw (); >extern double j1 (double) throw (); extern double __j1 (double) throw (); >extern double jn (int, double) throw (); extern double __jn (int, double) throw (); >extern double y0 (double) throw (); extern double __y0 (double) throw (); >extern double y1 (double) throw (); extern double __y1 (double) throw (); >extern double yn (int, double) throw (); extern double __yn (int, double) throw (); > > > > > > >extern double erf (double) throw (); extern double __erf (double) throw (); >extern double erfc (double) throw (); extern double __erfc (double) throw (); >extern double lgamma (double) throw (); extern double __lgamma (double) throw (); > > > > > > >extern double tgamma (double) throw (); extern double __tgamma (double) throw (); > > > > > >extern double gamma (double) throw (); extern double __gamma (double) throw (); > > > > > > >extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); > > > > > > > >extern double rint (double __x) throw (); extern double __rint (double __x) throw (); > > >extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__)); > >extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); > > > >extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); > > > >extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); > > > > >extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); > > > >extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); > > > >extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); > > > >extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); > > > > >extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); > > > > > > >extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); >extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); > > > >extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); >extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); > > > >extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); > > >extern double fmax (double __x, double __y) throw (); extern double __fmax (double __x, double __y) throw (); > > >extern double fmin (double __x, double __y) throw (); extern double __fmin (double __x, double __y) throw (); > > > >extern int __fpclassify (double __value) throw () > __attribute__ ((__const__)); > > >extern int __signbit (double __value) throw () > __attribute__ ((__const__)); > > > >extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); > > > > > > > > >extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); ># 72 "/usr/include/math.h" 2 3 4 ># 94 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); > >extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); > >extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); > >extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); > > >extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); > >extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); > >extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); > > > > >extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); > >extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); > >extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); > > > > >extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw (); > > > > > > >extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); > >extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); > >extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); > > > > > > > >extern float expf (float __x) throw (); extern float __expf (float __x) throw (); > > >extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); > > >extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); > > >extern float logf (float __x) throw (); extern float __logf (float __x) throw (); > > >extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); > > >extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw (); > > > > >extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); > >extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw (); > > > > > >extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); > > >extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); > > >extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); > > > > > > >extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); > > >extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); > > > > > > > > >extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); > > >extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); > > > > > >extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); > > > > > > >extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); > > > > > > > > >extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); > > >extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); > > >extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); > > >extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); > > > > >extern int __isinff (float __value) throw () __attribute__ ((__const__)); > > >extern int __finitef (float __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinff (float __value) throw () __attribute__ ((__const__)); > > >extern int finitef (float __value) throw () __attribute__ ((__const__)); > > >extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); > > > >extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); > > > > > >extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); > > > > > > >extern float nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnanf (float __value) throw () __attribute__ ((__const__)); > > > >extern int isnanf (float __value) throw () __attribute__ ((__const__)); > > >extern float j0f (float) throw (); extern float __j0f (float) throw (); >extern float j1f (float) throw (); extern float __j1f (float) throw (); >extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); >extern float y0f (float) throw (); extern float __y0f (float) throw (); >extern float y1f (float) throw (); extern float __y1f (float) throw (); >extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); > > > > > > >extern float erff (float) throw (); extern float __erff (float) throw (); >extern float erfcf (float) throw (); extern float __erfcf (float) throw (); >extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); > > > > > > >extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); > > > > > >extern float gammaf (float) throw (); extern float __gammaf (float) throw (); > > > > > > >extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); > > > > > > > >extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); > > >extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); > >extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); > > > >extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); > > > >extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); > > > > >extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); > > > >extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); > > > >extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); > > > >extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); > > > > >extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); > > > > > > >extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); >extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); > > > >extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); >extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); > > > >extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); > > >extern float fmaxf (float __x, float __y) throw (); extern float __fmaxf (float __x, float __y) throw (); > > >extern float fminf (float __x, float __y) throw (); extern float __fminf (float __x, float __y) throw (); > > > >extern int __fpclassifyf (float __value) throw () > __attribute__ ((__const__)); > > >extern int __signbitf (float __value) throw () > __attribute__ ((__const__)); > > > >extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); > > > > > > > > >extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); ># 95 "/usr/include/math.h" 2 3 4 ># 141 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); > >extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); > >extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); > >extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); > > >extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); > >extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); > >extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); > > > > >extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); > >extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); > >extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); > > > > >extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); > > > > > > >extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); > >extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); > >extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); > > > > > > > >extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); > > >extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); > > >extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); > > >extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); > > >extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); > > >extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw (); > > > > >extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); > >extern long double pow10l (long double __x) throw (); extern long double __pow10l (long double __x) throw (); > > > > > >extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); > > >extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); > > >extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); > > > > > > >extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); > > >extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); > > > > > > > > >extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); > > >extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); > > > > > >extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); > > > > > > >extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); > > > > > > > > >extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); > > >extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); > > >extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); > > >extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); > > > > >extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); > > >extern int __finitel (long double __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinfl (long double __value) throw () __attribute__ ((__const__)); > > >extern int finitel (long double __value) throw () __attribute__ ((__const__)); > > >extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); > > > >extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); > > > > > >extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); > > > > > > >extern long double nanl (__const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); > > > >extern int isnanl (long double __value) throw () __attribute__ ((__const__)); > > >extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); >extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); >extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); >extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); >extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); >extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); > > > > > > >extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); >extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); >extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); > > > > > > >extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); > > > > > >extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); > > > > > > >extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); > > > > > > > >extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); > > >extern long double nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); > >extern long double nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); > > > >extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); > > > >extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); > > > > >extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); > > > >extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); > > > >extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); > > > >extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); > > > > >extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); > > > > > > >extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); >extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); > > > >extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); >extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); > > > >extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); > > >extern long double fmaxl (long double __x, long double __y) throw (); extern long double __fmaxl (long double __x, long double __y) throw (); > > >extern long double fminl (long double __x, long double __y) throw (); extern long double __fminl (long double __x, long double __y) throw (); > > > >extern int __fpclassifyl (long double __value) throw () > __attribute__ ((__const__)); > > >extern int __signbitl (long double __value) throw () > __attribute__ ((__const__)); > > > >extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); > > > > > > > > >extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); ># 142 "/usr/include/math.h" 2 3 4 ># 157 "/usr/include/math.h" 3 4 >extern int signgam; ># 198 "/usr/include/math.h" 3 4 >enum > { > FP_NAN, > > FP_INFINITE, > > FP_ZERO, > > FP_SUBNORMAL, > > FP_NORMAL > > }; ># 284 "/usr/include/math.h" 3 4 >typedef enum >{ > _IEEE_ = -1, > _SVID_, > _XOPEN_, > _POSIX_, > _ISOC_ >} _LIB_VERSION_TYPE; > > > > >extern _LIB_VERSION_TYPE _LIB_VERSION; ># 307 "/usr/include/math.h" 3 4 >struct __exception > > > > { > int type; > char *name; > double arg1; > double arg2; > double retval; > }; > > >extern int matherr (struct __exception *__exc) throw (); ># 409 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathinline.h" 1 3 4 ># 127 "/usr/include/bits/mathinline.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) int >__signbitf (float __x) throw () >{ > __extension__ union { float __f; int __i; } __u = { __f: __x }; > return __u.__i < 0; >} >extern __inline __attribute__ ((__gnu_inline__)) int >__signbit (double __x) throw () >{ > __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; > return __u.__i[1] < 0; >} >extern __inline __attribute__ ((__gnu_inline__)) int >__signbitl (long double __x) throw () >{ > __extension__ union { long double __l; int __i[3]; } __u = { __l: __x }; > return (__u.__i[2] & 0x8000) != 0; >} ># 291 "/usr/include/bits/mathinline.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) double __sgn (double) throw (); extern __inline __attribute__ ((__gnu_inline__)) double __sgn (double __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } extern __inline __attribute__ ((__gnu_inline__)) float __sgnf (float) throw (); extern __inline __attribute__ ((__gnu_inline__)) float __sgnf (float __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } extern __inline __attribute__ ((__gnu_inline__)) long double __sgnl (long double) throw (); extern __inline __attribute__ ((__gnu_inline__)) long double __sgnl (long double __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } ># 433 "/usr/include/bits/mathinline.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) long double __atan2l (long double __y, long double __x) throw () { return __builtin_atan2l (__y, __x); } ># 473 "/usr/include/bits/mathinline.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) double fabs (double __x) throw () { return __builtin_fabs (__x); } > >extern __inline __attribute__ ((__gnu_inline__)) float fabsf (float __x) throw () { return __builtin_fabsf (__x); } >extern __inline __attribute__ ((__gnu_inline__)) long double fabsl (long double __x) throw () { return __builtin_fabsl (__x); } > >extern __inline __attribute__ ((__gnu_inline__)) long double __fabsl (long double __x) throw () { return __builtin_fabsl (__x); } ># 506 "/usr/include/bits/mathinline.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) long double __sgn1l (long double) throw (); extern __inline __attribute__ ((__gnu_inline__)) long double __sgn1l (long double __x) throw () { __extension__ union { long double __xld; unsigned int __xi[3]; } __n = { __xld: __x }; __n.__xi[2] = (__n.__xi[2] & 0x8000) | 0x3fff; __n.__xi[1] = 0x80000000; __n.__xi[0] = 0; return __n.__xld; } ># 530 "/usr/include/bits/mathinline.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) double floor (double __x) throw () { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0400, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } extern __inline __attribute__ ((__gnu_inline__)) float floorf (float __x) throw () { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0400, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } extern __inline __attribute__ ((__gnu_inline__)) long double floorl (long double __x) throw () { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0400, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } ># 548 "/usr/include/bits/mathinline.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) double ceil (double __x) throw () { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0800, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } extern __inline __attribute__ ((__gnu_inline__)) float ceilf (float __x) throw () { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0800, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } extern __inline __attribute__ ((__gnu_inline__)) long double ceill (long double __x) throw () { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0800, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } ># 667 "/usr/include/bits/mathinline.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) long int >lrintf (float __x) throw () >{ > long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; >} >extern __inline __attribute__ ((__gnu_inline__)) long int >lrint (double __x) throw () >{ > long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; >} >extern __inline __attribute__ ((__gnu_inline__)) long int >lrintl (long double __x) throw () >{ > long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; >} ># 690 "/usr/include/bits/mathinline.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) long long int >llrintf (float __x) throw () >{ > long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; >} >extern __inline __attribute__ ((__gnu_inline__)) long long int >llrint (double __x) throw () >{ > long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; >} >extern __inline __attribute__ ((__gnu_inline__)) long long int >llrintl (long double __x) throw () >{ > long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; >} ># 727 "/usr/include/bits/mathinline.h" 3 4 >extern __inline __attribute__ ((__gnu_inline__)) int >__finite (double __x) throw () >{ > return (__extension__ > (((((union { double __d; int __i[2]; }) {__d: __x}).__i[1] > | 0x800fffffu) + 1) >> 31)); >} ># 410 "/usr/include/math.h" 2 3 4 ># 465 "/usr/include/math.h" 3 4 >} ># 184 "../condor_includes/condor_system.h" 2 ># 1 "/usr/include/utime.h" 1 3 4 ># 28 "/usr/include/utime.h" 3 4 >extern "C" { ># 38 "/usr/include/utime.h" 3 4 >struct utimbuf > { > __time_t actime; > __time_t modtime; > }; > > > >extern int utime (__const char *__file, > __const struct utimbuf *__file_times) > throw () __attribute__ ((__nonnull__ (1))); > >} ># 185 "../condor_includes/condor_system.h" 2 > ># 1 "/usr/include/sys/poll.h" 1 3 4 ># 26 "/usr/include/sys/poll.h" 3 4 ># 1 "/usr/include/bits/poll.h" 1 3 4 ># 27 "/usr/include/sys/poll.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 30 "/usr/include/sys/poll.h" 2 3 4 > > > > > > > >typedef unsigned long int nfds_t; > > >struct pollfd > { > int fd; > short int events; > short int revents; > }; > > >extern "C" { ># 58 "/usr/include/sys/poll.h" 3 4 >extern int poll (struct pollfd *__fds, nfds_t __nfds, int __timeout); ># 67 "/usr/include/sys/poll.h" 3 4 >extern int ppoll (struct pollfd *__fds, nfds_t __nfds, > __const struct timespec *__timeout, > __const __sigset_t *__ss); > > >} ># 187 "../condor_includes/condor_system.h" 2 > > > > > ># 1 "../condor_includes/condor_snutils.h" 1 ># 27 "../condor_includes/condor_snutils.h" >extern "C" { > > > > > >int condor_snprintf(char *output, int buffer_size, const char *format, ...); >int condor_vsnprintf(char *output, int buffer_size, const char *format, > va_list args); >int printf_length(const char *format, ...); >int vprintf_length(const char *format, va_list args); > >} ># 193 "../condor_includes/condor_system.h" 2 > > > > > >typedef fd_set *SELECT_FDSET_PTR; ># 215 "../condor_includes/condor_system.h" ># 1 "/usr/include/inttypes.h" 1 3 4 ># 274 "/usr/include/inttypes.h" 3 4 >extern "C" { ># 288 "/usr/include/inttypes.h" 3 4 >typedef struct > { > long long int quot; > long long int rem; > } imaxdiv_t; > > > > > >extern intmax_t imaxabs (intmax_t __n) throw () __attribute__ ((__const__)); > > >extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) > throw () __attribute__ ((__const__)); > > >extern intmax_t strtoimax (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) throw (); > > >extern uintmax_t strtoumax (__const char *__restrict __nptr, > char ** __restrict __endptr, int __base) throw (); > > >extern intmax_t wcstoimax (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > >extern uintmax_t wcstoumax (__const wchar_t *__restrict __nptr, > wchar_t ** __restrict __endptr, int __base) > throw (); ># 379 "/usr/include/inttypes.h" 3 4 >__extension__ >extern long long int __strtoll_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern __inline __attribute__ ((__gnu_inline__)) intmax_t >strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base) throw () > >{ > return __strtoll_internal (nptr, endptr, base, 0); >} > >__extension__ >extern unsigned long long int __strtoull_internal (__const char * > __restrict __nptr, > char ** > __restrict __endptr, > int __base, > int __group) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern __inline __attribute__ ((__gnu_inline__)) uintmax_t >strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base) throw () > >{ > return __strtoull_internal (nptr, endptr, base, 0); >} > >__extension__ >extern long long int __wcstoll_internal (__const wchar_t * > __restrict __nptr, > wchar_t **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern __inline __attribute__ ((__gnu_inline__)) intmax_t >wcstoimax (__const wchar_t *__restrict nptr, wchar_t **__restrict endptr, int base) throw () > >{ > return __wcstoll_internal (nptr, endptr, base, 0); >} > > >__extension__ >extern unsigned long long int __wcstoull_internal (__const wchar_t * > __restrict __nptr, > wchar_t ** > __restrict __endptr, > int __base, > int __group) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern __inline __attribute__ ((__gnu_inline__)) uintmax_t >wcstoumax (__const wchar_t *__restrict nptr, wchar_t **__restrict endptr, int base) throw () > >{ > return __wcstoull_internal (nptr, endptr, base, 0); >} > > > > >} ># 216 "../condor_includes/condor_system.h" 2 ># 243 "../condor_includes/condor_system.h" > typedef int64_t filesize_t; ># 40 "../condor_includes/condor_common.h" 2 > > > > ># 1 "../condor_includes/condor_constants.h" 1 ># 33 "../condor_includes/condor_constants.h" >typedef int BOOLEAN; >typedef int BOOL_T; ># 44 "../condor_includes/condor_constants.h" >enum { FALSE=0, TRUE=1 }; ># 53 "../condor_includes/condor_constants.h" >static const int MINUTE = 60; >static const int HOUR = 60 * 60; >static const int DAY = 24 * 60 * 60; > > > > > > > >static const int MATCH = 0; > > > > > > > >static const int CLIENT_LOG = 18; >static const int RSC_SOCK = 17; > >static const int REQ_SOCK = 16; >static const int RPL_SOCK = 17; ># 85 "../condor_includes/condor_constants.h" >static const char DIR_DELIM_CHAR = '/'; >static const char DIR_DELIM_STRING[] = "/"; >static const char PATH_DELIM_CHAR = ':'; >static const char NULL_FILE[] = "/dev/null"; >static const char CONDOR_EXEC[] = "condor_exec.exe"; > > > >static const char WINDOWS_NULL_FILE[] = "NUL"; >static const char UNIX_NULL_FILE[] = "/dev/null"; > > >static const char NiceUserName[] = "nice-user"; ># 111 "../condor_includes/condor_constants.h" >static const size_t IP_STRING_BUF_SIZE = 16; ># 45 "../condor_includes/condor_common.h" 2 ># 1 "../condor_includes/condor_macros.h" 1 ># 54 "../condor_includes/condor_macros.h" ># 1 "../condor_includes/../condor_c++_util/condor_open.h" 1 ># 32 "../condor_includes/../condor_c++_util/condor_open.h" >extern "C" { ># 59 "../condor_includes/../condor_c++_util/condor_open.h" >int safe_open_wrapper(const char *fn, int flags, mode_t mode = 0644); > > >int safe_create_fail_if_exists(const char *fn, int flags, mode_t mode = 0644); > > >int safe_create_replace_if_exists(const char *fn, int flags, mode_t mode = 0644); > > >int safe_create_keep_if_exists(const char *fn, int flags, mode_t mode = 0644); > > >int safe_open_no_create(const char *fn, int flags); ># 89 "../condor_includes/../condor_c++_util/condor_open.h" >FILE* safe_fopen_wrapper(const char *fn, const char *flags, mode_t mode = 0644); > > >FILE* safe_fcreate_fail_if_exists(const char *fn, const char* flags, mode_t mode = 0644); > > >FILE* safe_fcreate_replace_if_exists(const char *fn, const char* flags, mode_t mode = 0644); > > >FILE* safe_fcreate_keep_if_exists(const char *fn, const char* flags, mode_t mode = 0644); > > >FILE* safe_fopen_no_create(const char* fn, const char* flags); > > > > > > >} ># 55 "../condor_includes/condor_macros.h" 2 > > > > > > ># 71 "../condor_includes/condor_macros.h" > ># 46 "../condor_includes/condor_common.h" 2 ># 1 "../condor_includes/condor_blkng_full_disk_io.h" 1 ># 28 "../condor_includes/condor_blkng_full_disk_io.h" >extern "C" { > > > > > >ssize_t _condor_full_read(int fd, void *ptr, size_t nbytes); >ssize_t _condor_full_write(int fd, const void *ptr, size_t nbytes); > > >ssize_t full_read(int filedes, void *ptr, size_t nbyte); >ssize_t full_write(int filedes, const void *ptr, size_t nbyte); > >} ># 47 "../condor_includes/condor_common.h" 2 ># 1 "../condor_includes/condor_create_id.h" 1 ># 23 "../condor_includes/condor_create_id.h" >extern "C" { > >void create_id(time_t *t, unsigned int *mii); > >} ># 48 "../condor_includes/condor_common.h" 2 > ># 1 "../condor_includes/cedar_enums.h" 1 ># 27 "../condor_includes/cedar_enums.h" >enum condor_signal_t { __signal_t_dummy_value = 2147483647 }; >enum open_flags_t { __open_flags_t_dummy_value = 2147483647 }; >enum fcntl_cmd_t { __fcntl_cmd_t_dummy_value = 2147483647 }; >enum condor_errno_t { __errno_t_dummy_value = 2147483647 }; >enum condor_mode_t { __mode_t_dummy_value = 2147483647 }; ># 50 "../condor_includes/condor_common.h" 2 ># 1 "../condor_includes/../condor_sysapi/sysapi.h" 1 ># 25 "../condor_includes/../condor_sysapi/sysapi.h" >extern "C" { > > > >typedef struct { > const char *file; > long offset; > int found_processors; > int found_hthreads; > int found_ncpus; >} SysapiProcCpuinfo; >extern SysapiProcCpuinfo _SysapiProcCpuinfo; > > > >int sysapi_phys_memory_raw(void); >int sysapi_phys_memory(void); > > >int sysapi_disk_space_raw(const char *filename); >int sysapi_disk_space(const char *filename); > > >int sysapi_ncpus_raw(void); >int sysapi_ncpus(void); > > > > > > >int sysapi_mips_raw(void); >int sysapi_mips(void); > > >int sysapi_kflops_raw(void); >int sysapi_kflops(void); > > >void sysapi_idle_time_raw(time_t *m_idle, time_t *m_console_idle); >void sysapi_idle_time(time_t *m_idle, time_t *m_console_idle); > > >void sysapi_reconfig(void); >void sysapi_internal_reconfig(void); > > > >void sysapi_last_xevent(void); > > >float sysapi_load_avg_raw(void); >float sysapi_load_avg(void); > > > > >const char* sysapi_condor_arch(void); >const char* sysapi_uname_arch(void); >const char* sysapi_opsys(void); >const char* sysapi_uname_opsys(void); > > > >int sysapi_swap_space_raw(void); >int sysapi_swap_space(void); > > > >int sysapi_test_dump_all(int, char *[]); >void sysapi_test_dump_internal_vars(void); >void sysapi_test_dump_functions(void); > > >char * sysapi_translate_arch( char *machine, char *sysname ); >char *sysapi_translate_opsys( char *sysname, char *release, char *version ); > > >void sysapi_set_resource_limits( void ); > > >int sysapi_magic_check( char* executable ); > > >int sysapi_symbol_main_check( char* executable ); > > >const char* sysapi_kernel_version_raw( void ); >const char* sysapi_kernel_version( void ); > > >const char* sysapi_kernel_memory_model_raw( void ); >const char* sysapi_kernel_memory_model( void ); > > >const char* sysapi_ckptpltfrm_raw( void ); >const char* sysapi_ckptpltfrm( void ); > > > > > > > >int sysapi_partition_id(char const *path,char **result); > >} ># 51 "../condor_includes/condor_common.h" 2 ># 28 "daemon_core.C" 2 > ># 1 "../condor_includes/stdsoap2.h" 1 ># 54 "../condor_includes/stdsoap2.h" ># 1 "../condor_includes/condor_common.h" 1 ># 55 "../condor_includes/stdsoap2.h" 2 ># 205 "../condor_includes/stdsoap2.h" ># 1 "../config.h" 1 ># 206 "../condor_includes/stdsoap2.h" 2 ># 488 "../condor_includes/stdsoap2.h" ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/limits.h" 1 3 4 ># 489 "../condor_includes/stdsoap2.h" 2 > > > > ># 1 "../condor_includes/condor_fix_iostream.h" 1 ># 35 "../condor_includes/condor_fix_iostream.h" ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iostream" 1 3 ># 42 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iostream" 3 > ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iostream" 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++config.h" 1 3 ># 40 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++config.h" 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/os_defines.h" 1 3 ># 41 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++config.h" 2 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/cpu_defines.h" 1 3 ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++config.h" 2 3 ># 233 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++config.h" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { ># 245 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++config.h" 3 >} ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iostream" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 1 3 ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ios" 1 3 ># 42 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ios" 3 > ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ios" 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iosfwd" 1 3 ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iosfwd" 3 > ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iosfwd" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stringfwd.h" 1 3 ># 42 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stringfwd.h" 3 > ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stringfwd.h" 3 > > > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _Alloc> > class allocator; > > template<class _CharT> > struct char_traits; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_string; > > template<> struct char_traits<char>; > > typedef basic_string<char> string; > > > template<> struct char_traits<wchar_t>; > > typedef basic_string<wchar_t> wstring; > > >} ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iosfwd" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/postypes.h" 1 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/postypes.h" 3 > ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/postypes.h" 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 1 3 ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 3 > ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 1 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 2 3 > > > > >namespace std __attribute__ ((__visibility__ ("default"))) { > > using ::ptrdiff_t; > using ::size_t; > >} ># 50 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 2 3 > > ># 1 "/usr/include/wchar.h" 1 3 4 ># 52 "/usr/include/wchar.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 355 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 3 4 >typedef unsigned int wint_t; ># 53 "/usr/include/wchar.h" 2 3 4 ># 99 "/usr/include/wchar.h" 3 4 > > >typedef __mbstate_t mbstate_t; > > > ># 124 "/usr/include/wchar.h" 3 4 >extern "C" { > > > > >struct tm; > > > > > > > > > >extern wchar_t *wcscpy (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src) throw (); > >extern wchar_t *wcsncpy (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, size_t __n) > throw (); > > >extern wchar_t *wcscat (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src) throw (); > >extern wchar_t *wcsncat (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, size_t __n) > throw (); > > >extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2) > throw () __attribute__ ((__pure__)); > >extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) > throw () __attribute__ ((__pure__)); > > > > >extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw (); > > >extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2, > size_t __n) throw (); > > > > > >extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, > __locale_t __loc) throw (); > >extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, > size_t __n, __locale_t __loc) throw (); > > > > > >extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw (); > > > >extern size_t wcsxfrm (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) throw (); > > > > > > > > >extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2, > __locale_t __loc) throw (); > > > > >extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2, > size_t __n, __locale_t __loc) throw (); > > >extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__)); > > > > >extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc) > throw () __attribute__ ((__pure__)); > > > > > >extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc) > throw () __attribute__ ((__pure__)); > > > > > >extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject) > throw () __attribute__ ((__pure__)); > > >extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle) > throw () __attribute__ ((__pure__)); > > >extern wchar_t *wcstok (wchar_t *__restrict __s, > __const wchar_t *__restrict __delim, > wchar_t **__restrict __ptr) throw (); > > >extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__)); > > > > >extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle) > throw () __attribute__ ((__pure__)); > > > > >extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen) > throw () __attribute__ ((__pure__)); > > > > > >extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n) > throw () __attribute__ ((__pure__)); > > >extern int wmemcmp (__const wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) > throw () __attribute__ ((__pure__)); > > >extern wchar_t *wmemcpy (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) throw (); > > > >extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n) > throw (); > > >extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); > > > > > >extern wchar_t *wmempcpy (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) > throw (); > > > > > > >extern wint_t btowc (int __c) throw (); > > > >extern int wctob (wint_t __c) throw (); > > > >extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__)); > > > >extern size_t mbrtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n, > mbstate_t *__p) throw (); > > >extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, > mbstate_t *__restrict __ps) throw (); > > >extern size_t __mbrlen (__const char *__restrict __s, size_t __n, > mbstate_t *__restrict __ps) throw (); >extern size_t mbrlen (__const char *__restrict __s, size_t __n, > mbstate_t *__restrict __ps) throw (); > > > > > > > > >extern wint_t __btowc_alias (int __c) __asm ("btowc"); >extern __inline __attribute__ ((__gnu_inline__)) wint_t >btowc (int __c) throw () >{ return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' > ? (wint_t) __c : __btowc_alias (__c)); } > >extern int __wctob_alias (wint_t __c) __asm ("wctob"); >extern __inline __attribute__ ((__gnu_inline__)) int >wctob (wint_t __wc) throw () >{ return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' > ? (int) __wc : __wctob_alias (__wc)); } > >extern __inline __attribute__ ((__gnu_inline__)) size_t >mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () > >{ return (__ps != __null > ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } > > > > > >extern size_t mbsrtowcs (wchar_t *__restrict __dst, > __const char **__restrict __src, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > >extern size_t wcsrtombs (char *__restrict __dst, > __const wchar_t **__restrict __src, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > > > > >extern size_t mbsnrtowcs (wchar_t *__restrict __dst, > __const char **__restrict __src, size_t __nmc, > size_t __len, mbstate_t *__restrict __ps) throw (); > > > >extern size_t wcsnrtombs (char *__restrict __dst, > __const wchar_t **__restrict __src, > size_t __nwc, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > > > > >extern int wcwidth (wchar_t __c) throw (); > > > >extern int wcswidth (__const wchar_t *__s, size_t __n) throw (); > > > > > > >extern double wcstod (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); > > > > > >extern float wcstof (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); >extern long double wcstold (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); > > > > > > > >extern long int wcstol (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) throw (); > > > >extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > > > > >__extension__ >extern long long int wcstoll (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > >__extension__ >extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base) throw (); > > > > > > >__extension__ >extern long long int wcstoq (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > >__extension__ >extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base) throw (); ># 477 "/usr/include/wchar.h" 3 4 >extern long int wcstol_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base, > __locale_t __loc) throw (); > >extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) throw (); > >__extension__ >extern long long int wcstoll_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) throw (); > >__extension__ >extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) > throw (); > >extern double wcstod_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, __locale_t __loc) > throw (); > >extern float wcstof_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, __locale_t __loc) > throw (); > >extern long double wcstold_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > __locale_t __loc) throw (); > > > > > > >extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw (); > > > >extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n) > throw (); ># 527 "/usr/include/wchar.h" 3 4 >extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw (); > > > > > > >extern int fwide (__FILE *__fp, int __mode) throw (); > > > > > > >extern int fwprintf (__FILE *__restrict __stream, > __const wchar_t *__restrict __format, ...) > ; > > > > >extern int wprintf (__const wchar_t *__restrict __format, ...) > ; > >extern int swprintf (wchar_t *__restrict __s, size_t __n, > __const wchar_t *__restrict __format, ...) > throw () ; > > > > > >extern int vfwprintf (__FILE *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > > > >extern int vwprintf (__const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > >extern int vswprintf (wchar_t *__restrict __s, size_t __n, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > throw () ; > > > > > > >extern int fwscanf (__FILE *__restrict __stream, > __const wchar_t *__restrict __format, ...) > ; > > > > >extern int wscanf (__const wchar_t *__restrict __format, ...) > ; > >extern int swscanf (__const wchar_t *__restrict __s, > __const wchar_t *__restrict __format, ...) > throw () ; ># 627 "/usr/include/wchar.h" 3 4 > > > > > > > > > >extern int vfwscanf (__FILE *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > > > >extern int vwscanf (__const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > >extern int vswscanf (__const wchar_t *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > throw () ; ># 683 "/usr/include/wchar.h" 3 4 > > > > > > > > > >extern wint_t fgetwc (__FILE *__stream); >extern wint_t getwc (__FILE *__stream); > > > > > >extern wint_t getwchar (void); > > > > > > >extern wint_t fputwc (wchar_t __wc, __FILE *__stream); >extern wint_t putwc (wchar_t __wc, __FILE *__stream); > > > > > >extern wint_t putwchar (wchar_t __wc); > > > > > > > >extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, > __FILE *__restrict __stream); > > > > > >extern int fputws (__const wchar_t *__restrict __ws, > __FILE *__restrict __stream); > > > > > > >extern wint_t ungetwc (wint_t __wc, __FILE *__stream); > ># 748 "/usr/include/wchar.h" 3 4 >extern wint_t getwc_unlocked (__FILE *__stream); >extern wint_t getwchar_unlocked (void); > > > > > > > >extern wint_t fgetwc_unlocked (__FILE *__stream); > > > > > > > >extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); ># 774 "/usr/include/wchar.h" 3 4 >extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); >extern wint_t putwchar_unlocked (wchar_t __wc); ># 784 "/usr/include/wchar.h" 3 4 >extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, > __FILE *__restrict __stream); > > > > > > > >extern int fputws_unlocked (__const wchar_t *__restrict __ws, > __FILE *__restrict __stream); > > > > > > > >extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, > __const wchar_t *__restrict __format, > __const struct tm *__restrict __tp) throw (); > > > > > > > >extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, > __const wchar_t *__restrict __format, > __const struct tm *__restrict __tp, > __locale_t __loc) throw (); ># 831 "/usr/include/wchar.h" 3 4 ># 1 "/usr/include/bits/wchar2.h" 1 3 4 ># 25 "/usr/include/bits/wchar2.h" 3 4 >extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n, > size_t __ns1) throw (); >extern wchar_t *__wmemcpy_alias (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmemcpy"); > > > >extern wchar_t *__wmemcpy_chk_warn (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemcpy_chk") > > > > __attribute__((__warning__ ("wmemcpy called with length bigger than size of destination " "buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) wchar_t * >wmemcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw () > >{ > if (__builtin_object_size (__s1, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__n)) > return __wmemcpy_chk (__s1, __s2, __n, > __builtin_object_size (__s1, 0) / sizeof (wchar_t)); > > if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) > return __wmemcpy_chk_warn (__s1, __s2, __n, > __builtin_object_size (__s1, 0) / sizeof (wchar_t)); > } > return __wmemcpy_alias (__s1, __s2, __n); >} > > >extern wchar_t *__wmemmove_chk (wchar_t *__s1, __const wchar_t *__s2, > size_t __n, size_t __ns1) throw (); >extern wchar_t *__wmemmove_alias (wchar_t *__s1, __const wchar_t *__s2, size_t __n) throw () __asm__ ("" "wmemmove"); > > >extern wchar_t *__wmemmove_chk_warn (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmemmove_chk") > > > > __attribute__((__warning__ ("wmemmove called with length bigger than size of destination " "buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) wchar_t * >wmemmove (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw () > >{ > if (__builtin_object_size (__s1, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__n)) > return __wmemmove_chk (__s1, __s2, __n, > __builtin_object_size (__s1, 0) / sizeof (wchar_t)); > > if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) > return __wmemmove_chk_warn (__s1, __s2, __n, > __builtin_object_size (__s1, 0) / sizeof (wchar_t)); > } > return __wmemmove_alias (__s1, __s2, __n); >} > > > >extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n, > size_t __ns1) throw (); >extern wchar_t *__wmempcpy_alias (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw () __asm__ ("" "wmempcpy"); > > > >extern wchar_t *__wmempcpy_chk_warn (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n, size_t __ns1) throw () __asm__ ("" "__wmempcpy_chk") > > > > __attribute__((__warning__ ("wmempcpy called with length bigger than size of destination " "buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) wchar_t * >wmempcpy (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, size_t __n) throw () > >{ > if (__builtin_object_size (__s1, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__n)) > return __wmempcpy_chk (__s1, __s2, __n, > __builtin_object_size (__s1, 0) / sizeof (wchar_t)); > > if (__n > __builtin_object_size (__s1, 0) / sizeof (wchar_t)) > return __wmempcpy_chk_warn (__s1, __s2, __n, > __builtin_object_size (__s1, 0) / sizeof (wchar_t)); > } > return __wmempcpy_alias (__s1, __s2, __n); >} > > > >extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n, > size_t __ns) throw (); >extern wchar_t *__wmemset_alias (wchar_t *__s, wchar_t __c, size_t __n) throw () __asm__ ("" "wmemset"); > >extern wchar_t *__wmemset_chk_warn (wchar_t *__s, wchar_t __c, size_t __n, size_t __ns) throw () __asm__ ("" "__wmemset_chk") > > > __attribute__((__warning__ ("wmemset called with length bigger than size of destination " "buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) wchar_t * >wmemset (wchar_t *__restrict __s, wchar_t __c, size_t __n) throw () >{ > if (__builtin_object_size (__s, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__n)) > return __wmemset_chk (__s, __c, __n, __builtin_object_size (__s, 0) / sizeof (wchar_t)); > > if (__n > __builtin_object_size (__s, 0) / sizeof (wchar_t)) > return __wmemset_chk_warn (__s, __c, __n, > __builtin_object_size (__s, 0) / sizeof (wchar_t)); > } > return __wmemset_alias (__s, __c, __n); >} > > >extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, > size_t __n) throw (); >extern wchar_t *__wcscpy_alias (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw () __asm__ ("" "wcscpy"); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) wchar_t * >wcscpy (wchar_t *__dest, __const wchar_t *__src) throw () >{ > if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) > return __wcscpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); > return __wcscpy_alias (__dest, __src); >} > > >extern wchar_t *__wcpcpy_chk (wchar_t *__dest, __const wchar_t *__src, > size_t __destlen) throw (); >extern wchar_t *__wcpcpy_alias (wchar_t *__dest, __const wchar_t *__src) throw () __asm__ ("" "wcpcpy"); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) wchar_t * >wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw () >{ > if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) > return __wcpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); > return __wcpcpy_alias (__dest, __src); >} > > >extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, size_t __n, > size_t __destlen) throw (); >extern wchar_t *__wcsncpy_alias (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncpy"); > > > >extern wchar_t *__wcsncpy_chk_warn (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n, size_t __destlen) throw () __asm__ ("" "__wcsncpy_chk") > > > > __attribute__((__warning__ ("wcsncpy called with length bigger than size of destination " "buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) wchar_t * >wcsncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n) throw () >{ > if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__n)) > return __wcsncpy_chk (__dest, __src, __n, > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); > if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) > return __wcsncpy_chk_warn (__dest, __src, __n, > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); > } > return __wcsncpy_alias (__dest, __src, __n); >} > > >extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, size_t __n, > size_t __destlen) throw (); >extern wchar_t *__wcpncpy_alias (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcpncpy"); > > > >extern wchar_t *__wcpncpy_chk_warn (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n, size_t __destlen) throw () __asm__ ("" "__wcpncpy_chk") > > > > __attribute__((__warning__ ("wcpncpy called with length bigger than size of destination " "buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) wchar_t * >wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n) throw () >{ > if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__n)) > return __wcpncpy_chk (__dest, __src, __n, > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); > if (__n > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)) > return __wcpncpy_chk_warn (__dest, __src, __n, > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); > } > return __wcpncpy_alias (__dest, __src, __n); >} > > >extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, > size_t __destlen) throw (); >extern wchar_t *__wcscat_alias (wchar_t *__restrict __dest, __const wchar_t *__restrict __src) throw () __asm__ ("" "wcscat"); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) wchar_t * >wcscat (wchar_t *__dest, __const wchar_t *__src) throw () >{ > if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) > return __wcscat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); > return __wcscat_alias (__dest, __src); >} > > >extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, > size_t __n, size_t __destlen) throw (); >extern wchar_t *__wcsncat_alias (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, size_t __n) throw () __asm__ ("" "wcsncat"); > > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) wchar_t * >wcsncat (wchar_t *__dest, __const wchar_t *__src, size_t __n) throw () >{ > if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1) > return __wcsncat_chk (__dest, __src, __n, > __builtin_object_size (__dest, 2 > 1) / sizeof (wchar_t)); > return __wcsncat_alias (__dest, __src, __n); >} > > >extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n, > int __flag, size_t __s_len, > __const wchar_t *__restrict __format, ...) > throw () ; > >extern int __swprintf_alias (wchar_t *__restrict __s, size_t __n, __const wchar_t *__restrict __fmt, ...) throw () __asm__ ("" "swprintf"); > > > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >swprintf (wchar_t *__restrict __s, size_t __n, __const wchar_t *__restrict __fmt, ...) throw () > >{ > if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) > return __swprintf_chk (__s, __n, 2 - 1, > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), > __fmt, __builtin_va_arg_pack ()); > return __swprintf_alias (__s, __n, __fmt, __builtin_va_arg_pack ()); >} ># 302 "/usr/include/bits/wchar2.h" 3 4 >extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n, > int __flag, size_t __s_len, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > throw () ; > >extern int __vswprintf_alias (wchar_t *__restrict __s, size_t __n, __const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () __asm__ ("" "vswprintf"); > > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >vswprintf (wchar_t *__restrict __s, size_t __n, __const wchar_t *__restrict __fmt, __gnuc_va_list __ap) throw () > >{ > if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 || 2 > 1) > return __vswprintf_chk (__s, __n, 2 - 1, > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), __fmt, __ap); > return __vswprintf_alias (__s, __n, __fmt, __ap); >} > > > > >extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag, > __const wchar_t *__restrict __format, ...); >extern int __wprintf_chk (int __flag, __const wchar_t *__restrict __format, > ...); >extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag, > __const wchar_t *__restrict __format, > __gnuc_va_list __ap); >extern int __vwprintf_chk (int __flag, __const wchar_t *__restrict __format, > __gnuc_va_list __ap); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >wprintf (__const wchar_t *__restrict __fmt, ...) >{ > return __wprintf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >fwprintf (__FILE *__restrict __stream, __const wchar_t *__restrict __fmt, ...) >{ > return __fwprintf_chk (__stream, 2 - 1, __fmt, > __builtin_va_arg_pack ()); >} > > > > > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >vwprintf (__const wchar_t *__restrict __fmt, __gnuc_va_list __ap) >{ > return __vwprintf_chk (2 - 1, __fmt, __ap); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) int >vfwprintf (__FILE *__restrict __stream, > __const wchar_t *__restrict __fmt, __gnuc_va_list __ap) >{ > return __vfwprintf_chk (__stream, 2 - 1, __fmt, __ap); >} > > > >extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n, > __FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern wchar_t *__fgetws_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws") __attribute__ ((__warn_unused_result__)); > > >extern wchar_t *__fgetws_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_chk") > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws called with bigger size than length " "of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * >fgetws (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) >{ > if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__n) || __n <= 0) > return __fgetws_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), > __n, __stream); > > if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) > return __fgetws_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), > __n, __stream); > } > return __fgetws_alias (__s, __n, __stream); >} > > >extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size, > int __n, __FILE *__restrict __stream) > __attribute__ ((__warn_unused_result__)); >extern wchar_t *__fgetws_unlocked_alias (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) __asm__ ("" "fgetws_unlocked") > > > __attribute__ ((__warn_unused_result__)); >extern wchar_t *__fgetws_unlocked_chk_warn (wchar_t *__restrict __s, size_t __size, int __n, __FILE *__restrict __stream) __asm__ ("" "__fgetws_unlocked_chk") > > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgetws_unlocked called with bigger size than length " "of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) wchar_t * >fgetws_unlocked (wchar_t *__restrict __s, int __n, __FILE *__restrict __stream) >{ > if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__n) || __n <= 0) > return __fgetws_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), > __n, __stream); > > if ((size_t) __n > __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t)) > return __fgetws_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1) / sizeof (wchar_t), > __n, __stream); > } > return __fgetws_unlocked_alias (__s, __n, __stream); >} > > > >extern size_t __wcrtomb_chk (char *__s, wchar_t __wchar, mbstate_t *__p, > size_t __buflen) throw () __attribute__ ((__warn_unused_result__)); >extern size_t __wcrtomb_alias (char *__restrict __s, wchar_t __wchar, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcrtomb") __attribute__ ((__warn_unused_result__)); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __attribute__ ((__warn_unused_result__)) size_t >wcrtomb (char *__s, wchar_t __wchar, mbstate_t *__ps) throw () >{ > > > > > > > > if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) > return __wcrtomb_chk (__s, __wchar, __ps, __builtin_object_size (__s, 2 > 1)); > return __wcrtomb_alias (__s, __wchar, __ps); >} > > >extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst, > __const char **__restrict __src, > size_t __len, mbstate_t *__restrict __ps, > size_t __dstlen) throw (); >extern size_t __mbsrtowcs_alias (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsrtowcs"); > > > > >extern size_t __mbsrtowcs_chk_warn (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__mbsrtowcs_chk") > > > > > __attribute__((__warning__ ("mbsrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t >mbsrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () > >{ > if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __mbsrtowcs_chk (__dst, __src, __len, __ps, > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); > > if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) > return __mbsrtowcs_chk_warn (__dst, __src, __len, __ps, > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); > } > return __mbsrtowcs_alias (__dst, __src, __len, __ps); >} > > >extern size_t __wcsrtombs_chk (char *__restrict __dst, > __const wchar_t **__restrict __src, > size_t __len, mbstate_t *__restrict __ps, > size_t __dstlen) throw (); >extern size_t __wcsrtombs_alias (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsrtombs"); > > > > >extern size_t __wcsrtombs_chk_warn (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__wcsrtombs_chk") > > > > > __attribute__((__warning__ ("wcsrtombs called with dst buffer smaller than len"))); > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t >wcsrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __len, mbstate_t *__restrict __ps) throw () > >{ > if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __wcsrtombs_chk (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); > > if (__len > __builtin_object_size (__dst, 2 > 1)) > return __wcsrtombs_chk_warn (__dst, __src, __len, __ps, __builtin_object_size (__dst, 2 > 1)); > } > return __wcsrtombs_alias (__dst, __src, __len, __ps); >} > > > >extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst, > __const char **__restrict __src, size_t __nmc, > size_t __len, mbstate_t *__restrict __ps, > size_t __dstlen) throw (); >extern size_t __mbsnrtowcs_alias (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "mbsnrtowcs"); > > > > >extern size_t __mbsnrtowcs_chk_warn (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__mbsnrtowcs_chk") > > > > > __attribute__((__warning__ ("mbsnrtowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t >mbsnrtowcs (wchar_t *__restrict __dst, __const char **__restrict __src, size_t __nmc, size_t __len, mbstate_t *__restrict __ps) throw () > >{ > if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __mbsnrtowcs_chk (__dst, __src, __nmc, __len, __ps, > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); > > if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) > return __mbsnrtowcs_chk_warn (__dst, __src, __nmc, __len, __ps, > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); > } > return __mbsnrtowcs_alias (__dst, __src, __nmc, __len, __ps); >} > > >extern size_t __wcsnrtombs_chk (char *__restrict __dst, > __const wchar_t **__restrict __src, > size_t __nwc, size_t __len, > mbstate_t *__restrict __ps, size_t __dstlen) > throw (); >extern size_t __wcsnrtombs_alias (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () __asm__ ("" "wcsnrtombs"); > > > > >extern size_t __wcsnrtombs_chk_warn (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps, size_t __dstlen) throw () __asm__ ("" "__wcsnrtombs_chk") > > > > > > __attribute__((__warning__ ("wcsnrtombs called with dst buffer smaller than len"))); > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) size_t >wcsnrtombs (char *__restrict __dst, __const wchar_t **__restrict __src, size_t __nwc, size_t __len, mbstate_t *__restrict __ps) throw () > >{ > if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __wcsnrtombs_chk (__dst, __src, __nwc, __len, __ps, > __builtin_object_size (__dst, 2 > 1)); > > if (__len > __builtin_object_size (__dst, 2 > 1)) > return __wcsnrtombs_chk_warn (__dst, __src, __nwc, __len, __ps, > __builtin_object_size (__dst, 2 > 1)); > } > return __wcsnrtombs_alias (__dst, __src, __nwc, __len, __ps); >} ># 832 "/usr/include/wchar.h" 2 3 4 > > > > > > >} ># 53 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 2 3 ># 70 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { > > using ::mbstate_t; > >} ># 144 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { > > using ::wint_t; > > using ::btowc; > using ::fgetwc; > using ::fgetws; > using ::fputwc; > using ::fputws; > using ::fwide; > using ::fwprintf; > using ::fwscanf; > using ::getwc; > using ::getwchar; > using ::mbrlen; > using ::mbrtowc; > using ::mbsinit; > using ::mbsrtowcs; > using ::putwc; > using ::putwchar; > using ::swprintf; > using ::swscanf; > using ::ungetwc; > using ::vfwprintf; > > using ::vfwscanf; > > using ::vswprintf; > > using ::vswscanf; > > using ::vwprintf; > > using ::vwscanf; > > using ::wcrtomb; > using ::wcscat; > using ::wcscmp; > using ::wcscoll; > using ::wcscpy; > using ::wcscspn; > using ::wcsftime; > using ::wcslen; > using ::wcsncat; > using ::wcsncmp; > using ::wcsncpy; > using ::wcsrtombs; > using ::wcsspn; > using ::wcstod; > > using ::wcstof; > > using ::wcstok; > using ::wcstol; > using ::wcstoul; > using ::wcsxfrm; > using ::wctob; > using ::wmemcmp; > using ::wmemcpy; > using ::wmemmove; > using ::wmemset; > using ::wprintf; > using ::wscanf; > > using ::wcschr; > > inline wchar_t* > wcschr(wchar_t* __p, wchar_t __c) > { return wcschr(const_cast<const wchar_t*>(__p), __c); } > > using ::wcspbrk; > > inline wchar_t* > wcspbrk(wchar_t* __s1, const wchar_t* __s2) > { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); } > > using ::wcsrchr; > > inline wchar_t* > wcsrchr(wchar_t* __p, wchar_t __c) > { return wcsrchr(const_cast<const wchar_t*>(__p), __c); } > > using ::wcsstr; > > inline wchar_t* > wcsstr(wchar_t* __s1, const wchar_t* __s2) > { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); } > > using ::wmemchr; > > inline wchar_t* > wmemchr(wchar_t* __p, wchar_t __c, size_t __n) > { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); } > >} > > > > > > > >namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { > > > > > > > using ::wcstold; ># 262 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 3 > using ::wcstoll; > using ::wcstoull; > > >} > >namespace std __attribute__ ((__visibility__ ("default"))) { > > using ::__gnu_cxx::wcstold; > using ::__gnu_cxx::wcstoll; > using ::__gnu_cxx::wcstoull; > >} ># 48 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/postypes.h" 2 3 > > > > > >namespace std __attribute__ ((__visibility__ ("default"))) { ># 71 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/postypes.h" 3 > typedef int64_t streamoff; > > > > > > typedef ptrdiff_t streamsize; ># 90 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/postypes.h" 3 > template<typename _StateT> > class fpos > { > private: > streamoff _M_off; > _StateT _M_state; > > public: > > > > > fpos() > : _M_off(0), _M_state() { } ># 112 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/postypes.h" 3 > fpos(streamoff __off) > : _M_off(__off), _M_state() { } > > > operator streamoff() const { return _M_off; } > > > void > state(_StateT __st) > { _M_state = __st; } > > > _StateT > state() const > { return _M_state; } > > > > > > fpos& > operator+=(streamoff __off) > { > _M_off += __off; > return *this; > } > > > > > > fpos& > operator-=(streamoff __off) > { > _M_off -= __off; > return *this; > } > > > > > > > > fpos > operator+(streamoff __off) const > { > fpos __pos(*this); > __pos += __off; > return __pos; > } > > > > > > > > fpos > operator-(streamoff __off) const > { > fpos __pos(*this); > __pos -= __off; > return __pos; > } > > > > > > > streamoff > operator-(const fpos& __other) const > { return _M_off - __other._M_off; } > }; > > > > > > > template<typename _StateT> > inline bool > operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) > { return streamoff(__lhs) == streamoff(__rhs); } > > template<typename _StateT> > inline bool > operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) > { return streamoff(__lhs) != streamoff(__rhs); } > > > > > > typedef fpos<mbstate_t> streampos; > > typedef fpos<mbstate_t> wstreampos; > >} ># 48 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iosfwd" 2 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ios; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_streambuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_istream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ostream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_iostream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_stringbuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_istringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_ostringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_stringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_filebuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ifstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ofstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_fstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class istreambuf_iterator; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class ostreambuf_iterator; > > > > class ios_base; ># 132 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iosfwd" 3 > typedef basic_ios<char> ios; > typedef basic_streambuf<char> streambuf; > typedef basic_istream<char> istream; > typedef basic_ostream<char> ostream; > typedef basic_iostream<char> iostream; > typedef basic_stringbuf<char> stringbuf; > typedef basic_istringstream<char> istringstream; > typedef basic_ostringstream<char> ostringstream; > typedef basic_stringstream<char> stringstream; > typedef basic_filebuf<char> filebuf; > typedef basic_ifstream<char> ifstream; > typedef basic_ofstream<char> ofstream; > typedef basic_fstream<char> fstream; > > > typedef basic_ios<wchar_t> wios; > typedef basic_streambuf<wchar_t> wstreambuf; > typedef basic_istream<wchar_t> wistream; > typedef basic_ostream<wchar_t> wostream; > typedef basic_iostream<wchar_t> wiostream; > typedef basic_stringbuf<wchar_t> wstringbuf; > typedef basic_istringstream<wchar_t> wistringstream; > typedef basic_ostringstream<wchar_t> wostringstream; > typedef basic_stringstream<wchar_t> wstringstream; > typedef basic_filebuf<wchar_t> wfilebuf; > typedef basic_ifstream<wchar_t> wifstream; > typedef basic_ofstream<wchar_t> wofstream; > typedef basic_fstream<wchar_t> wfstream; > > > >} ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ios" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/exception" 1 3 ># 40 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/exception" 3 >#pragma GCC visibility push(default) > > > >extern "C++" { > >namespace std >{ ># 56 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/exception" 3 > class exception > { > public: > exception() throw() { } > virtual ~exception() throw(); > > > > virtual const char* what() const throw(); > }; > > > > class bad_exception : public exception > { > public: > bad_exception() throw() { } > > > > virtual ~bad_exception() throw(); > > > virtual const char* what() const throw(); > }; > > > typedef void (*terminate_handler) (); > > > typedef void (*unexpected_handler) (); > > > terminate_handler set_terminate(terminate_handler) throw(); > > > > void terminate() __attribute__ ((__noreturn__)); > > > unexpected_handler set_unexpected(unexpected_handler) throw(); > > > > void unexpected() __attribute__ ((__noreturn__)); ># 112 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/exception" 3 > bool uncaught_exception() throw(); >} > >namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { ># 127 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/exception" 3 > void __verbose_terminate_handler (); > >} > >} > >#pragma GCC visibility pop ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ios" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h" 1 3 ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h" 3 > ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h" 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 1 3 ># 66 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 1 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 2 3 ># 67 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/functexcept.h" 1 3 ># 42 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/exception_defines.h" 1 3 ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/functexcept.h" 2 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { > > > void > __throw_bad_exception(void) __attribute__((__noreturn__)); > > > void > __throw_bad_alloc(void) __attribute__((__noreturn__)); > > > void > __throw_bad_cast(void) __attribute__((__noreturn__)); > > void > __throw_bad_typeid(void) __attribute__((__noreturn__)); > > > void > __throw_logic_error(const char*) __attribute__((__noreturn__)); > > void > __throw_domain_error(const char*) __attribute__((__noreturn__)); > > void > __throw_invalid_argument(const char*) __attribute__((__noreturn__)); > > void > __throw_length_error(const char*) __attribute__((__noreturn__)); > > void > __throw_out_of_range(const char*) __attribute__((__noreturn__)); > > void > __throw_runtime_error(const char*) __attribute__((__noreturn__)); > > void > __throw_range_error(const char*) __attribute__((__noreturn__)); > > void > __throw_overflow_error(const char*) __attribute__((__noreturn__)); > > void > __throw_underflow_error(const char*) __attribute__((__noreturn__)); > > > void > __throw_ios_failure(const char*) __attribute__((__noreturn__)); > >} ># 68 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/cpp_type_traits.h" 1 3 ># 41 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/cpp_type_traits.h" 3 > ># 42 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/cpp_type_traits.h" 3 ># 74 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/cpp_type_traits.h" 3 >namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { > > template<typename _Iterator, typename _Container> > class __normal_iterator; > >} > >namespace std __attribute__ ((__visibility__ ("default"))) { > > struct __true_type { }; > struct __false_type { }; > > template<bool> > struct __truth_type > { typedef __false_type __type; }; > > template<> > struct __truth_type<true> > { typedef __true_type __type; }; > > > > template<class _Sp, class _Tp> > struct __traitor > { > enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; > typedef typename __truth_type<__value>::__type __type; > }; > > > template<typename, typename> > struct __are_same > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > template<typename _Tp> > struct __are_same<_Tp, _Tp> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > template<typename _Tp> > struct __is_void > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > template<> > struct __is_void<void> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > > > template<typename _Tp> > struct __is_integer > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > > > > template<> > struct __is_integer<bool> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<char> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<signed char> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<unsigned char> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > template<> > struct __is_integer<wchar_t> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > template<> > struct __is_integer<short> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<unsigned short> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<int> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<unsigned int> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<long> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<unsigned long> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<long long> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<unsigned long long> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > > > template<typename _Tp> > struct __is_floating > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > > template<> > struct __is_floating<float> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_floating<double> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_floating<long double> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > > > template<typename _Tp> > struct __is_pointer > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > template<typename _Tp> > struct __is_pointer<_Tp*> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > > > template<typename _Tp> > struct __is_normal_iterator > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > template<typename _Iterator, typename _Container> > struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, > _Container> > > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > > > template<typename _Tp> > struct __is_arithmetic > : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > > { }; > > > > > template<typename _Tp> > struct __is_fundamental > : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> > > { }; > > > > > template<typename _Tp> > struct __is_scalar > : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > > { }; > > > > > template<typename _Tp> > struct __is_char > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > template<> > struct __is_char<char> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > template<> > struct __is_char<wchar_t> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > template<typename _Tp> > struct __is_byte > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > template<> > struct __is_byte<char> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_byte<signed char> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_byte<unsigned char> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > > > template<typename _Tp> > struct __is_move_iterator > { > enum { __value = 0 }; > typedef __false_type __type; > }; ># 406 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/cpp_type_traits.h" 3 >} ># 69 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/type_traits.h" 1 3 ># 38 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/type_traits.h" 3 > ># 39 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/type_traits.h" 3 > > > > >namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { > > > template<bool, typename> > struct __enable_if > { }; > > template<typename _Tp> > struct __enable_if<true, _Tp> > { typedef _Tp __type; }; > > > > template<bool _Cond, typename _Iftrue, typename _Iffalse> > struct __conditional_type > { typedef _Iftrue __type; }; > > template<typename _Iftrue, typename _Iffalse> > struct __conditional_type<false, _Iftrue, _Iffalse> > { typedef _Iffalse __type; }; > > > > template<typename _Tp> > struct __add_unsigned > { > private: > typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type; > > public: > typedef typename __if_type::__type __type; > }; > > template<> > struct __add_unsigned<char> > { typedef unsigned char __type; }; > > template<> > struct __add_unsigned<signed char> > { typedef unsigned char __type; }; > > template<> > struct __add_unsigned<short> > { typedef unsigned short __type; }; > > template<> > struct __add_unsigned<int> > { typedef unsigned int __type; }; > > template<> > struct __add_unsigned<long> > { typedef unsigned long __type; }; > > template<> > struct __add_unsigned<long long> > { typedef unsigned long long __type; }; > > > template<> > struct __add_unsigned<bool>; > > template<> > struct __add_unsigned<wchar_t>; > > > > template<typename _Tp> > struct __remove_unsigned > { > private: > typedef __enable_if<std::__is_integer<_Tp>::__value, _Tp> __if_type; > > public: > typedef typename __if_type::__type __type; > }; > > template<> > struct __remove_unsigned<char> > { typedef signed char __type; }; > > template<> > struct __remove_unsigned<unsigned char> > { typedef signed char __type; }; > > template<> > struct __remove_unsigned<unsigned short> > { typedef short __type; }; > > template<> > struct __remove_unsigned<unsigned int> > { typedef int __type; }; > > template<> > struct __remove_unsigned<unsigned long> > { typedef long __type; }; > > template<> > struct __remove_unsigned<unsigned long long> > { typedef long long __type; }; > > > template<> > struct __remove_unsigned<bool>; > > template<> > struct __remove_unsigned<wchar_t>; > > > > template<typename _Type> > inline bool > __is_null_pointer(_Type* __ptr) > { return __ptr == 0; } > > template<typename _Type> > inline bool > __is_null_pointer(_Type) > { return false; } > > > > template<typename _Tp, bool = std::__is_integer<_Tp>::__value> > struct __promote > { typedef double __type; }; > > template<typename _Tp> > struct __promote<_Tp, false> > { typedef _Tp __type; }; > > template<typename _Tp, typename _Up> > struct __promote_2 > { > private: > typedef typename __promote<_Tp>::__type __type1; > typedef typename __promote<_Up>::__type __type2; > > public: > typedef __typeof__(__type1() + __type2()) __type; > }; > > template<typename _Tp, typename _Up, typename _Vp> > struct __promote_3 > { > private: > typedef typename __promote<_Tp>::__type __type1; > typedef typename __promote<_Up>::__type __type2; > typedef typename __promote<_Vp>::__type __type3; > > public: > typedef __typeof__(__type1() + __type2() + __type3()) __type; > }; > > template<typename _Tp, typename _Up, typename _Vp, typename _Wp> > struct __promote_4 > { > private: > typedef typename __promote<_Tp>::__type __type1; > typedef typename __promote<_Up>::__type __type2; > typedef typename __promote<_Vp>::__type __type3; > typedef typename __promote<_Wp>::__type __type4; > > public: > typedef __typeof__(__type1() + __type2() + __type3() + __type4()) __type; > }; > >} ># 70 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/numeric_traits.h" 1 3 ># 38 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/numeric_traits.h" 3 > ># 39 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/numeric_traits.h" 3 > > > > >namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { ># 58 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/numeric_traits.h" 3 > template<typename _Value> > struct __numeric_traits_integer > { > > static const _Value __min = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0); > static const _Value __max = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0); > > > > static const bool __is_signed = ((_Value)(-1) < 0); > static const int __digits = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)); > }; > > template<typename _Value> > const _Value __numeric_traits_integer<_Value>::__min; > > template<typename _Value> > const _Value __numeric_traits_integer<_Value>::__max; > > template<typename _Value> > const bool __numeric_traits_integer<_Value>::__is_signed; > > template<typename _Value> > const int __numeric_traits_integer<_Value>::__digits; ># 103 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/numeric_traits.h" 3 > template<typename _Value> > struct __numeric_traits_floating > { > > static const int __max_digits10 = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 3010 / 10000); > > > static const bool __is_signed = true; > static const int __digits10 = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18); > static const int __max_exponent10 = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932); > }; > > template<typename _Value> > const int __numeric_traits_floating<_Value>::__max_digits10; > > template<typename _Value> > const bool __numeric_traits_floating<_Value>::__is_signed; > > template<typename _Value> > const int __numeric_traits_floating<_Value>::__digits10; > > template<typename _Value> > const int __numeric_traits_floating<_Value>::__max_exponent10; > > template<typename _Value> > struct __numeric_traits > : public __conditional_type<std::__is_integer<_Value>::__value, > __numeric_traits_integer<_Value>, > __numeric_traits_floating<_Value> >::__type > { }; > >} ># 71 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_pair.h" 1 3 ># 65 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_pair.h" 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_move.h" 1 3 ># 39 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_move.h" 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/concept_check.h" 1 3 ># 38 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/concept_check.h" 3 > ># 39 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/concept_check.h" 3 ># 40 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_move.h" 2 3 ># 70 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_move.h" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { > > > > > > > > template<typename _Tp> > inline void > swap(_Tp& __a, _Tp& __b) > { > > > > _Tp __tmp = (__a); > __a = (__b); > __b = (__tmp); > } > >} ># 66 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_pair.h" 2 3 > > >namespace std __attribute__ ((__visibility__ ("default"))) { > > > template<class _T1, class _T2> > struct pair > { > typedef _T1 first_type; > typedef _T2 second_type; > > _T1 first; > _T2 second; > > > > > > pair() > : first(), second() { } > > > pair(const _T1& __a, const _T2& __b) > : first(__a), second(__b) { } ># 103 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_pair.h" 3 > template<class _U1, class _U2> > pair(const pair<_U1, _U2>& __p) > : first(__p.first), > second(__p.second) { } ># 146 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_pair.h" 3 > }; > > > template<class _T1, class _T2> > inline bool > operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return __x.first == __y.first && __x.second == __y.second; } > > > template<class _T1, class _T2> > inline bool > operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return __x.first < __y.first > || (!(__y.first < __x.first) && __x.second < __y.second); } > > > template<class _T1, class _T2> > inline bool > operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return !(__x == __y); } > > > template<class _T1, class _T2> > inline bool > operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return __y < __x; } > > > template<class _T1, class _T2> > inline bool > operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return !(__y < __x); } > > > template<class _T1, class _T2> > inline bool > operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return !(__x < __y); } ># 216 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_pair.h" 3 > template<class _T1, class _T2> > inline pair<_T1, _T2> > make_pair(_T1 __x, _T2 __y) > { return pair<_T1, _T2>(__x, __y); } ># 262 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_pair.h" 3 >} ># 72 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator_base_types.h" 1 3 ># 68 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator_base_types.h" 3 > ># 69 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator_base_types.h" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 1 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 2 3 ># 72 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator_base_types.h" 2 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { ># 84 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator_base_types.h" 3 > struct input_iterator_tag {}; > > struct output_iterator_tag {}; > > struct forward_iterator_tag : public input_iterator_tag {}; > > > struct bidirectional_iterator_tag : public forward_iterator_tag {}; > > > struct random_access_iterator_tag : public bidirectional_iterator_tag {}; ># 108 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator_base_types.h" 3 > template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, > typename _Pointer = _Tp*, typename _Reference = _Tp&> > struct iterator > { > > typedef _Category iterator_category; > > typedef _Tp value_type; > > typedef _Distance difference_type; > > typedef _Pointer pointer; > > typedef _Reference reference; > }; > > > > > > > > template<typename _Iterator> > struct iterator_traits > { > typedef typename _Iterator::iterator_category iterator_category; > typedef typename _Iterator::value_type value_type; > typedef typename _Iterator::difference_type difference_type; > typedef typename _Iterator::pointer pointer; > typedef typename _Iterator::reference reference; > }; > > template<typename _Tp> > struct iterator_traits<_Tp*> > { > typedef random_access_iterator_tag iterator_category; > typedef _Tp value_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef _Tp& reference; > }; > > template<typename _Tp> > struct iterator_traits<const _Tp*> > { > typedef random_access_iterator_tag iterator_category; > typedef _Tp value_type; > typedef ptrdiff_t difference_type; > typedef const _Tp* pointer; > typedef const _Tp& reference; > }; > > > > > > template<typename _Iter> > inline typename iterator_traits<_Iter>::iterator_category > __iterator_category(const _Iter&) > { return typename iterator_traits<_Iter>::iterator_category(); } > >} ># 73 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator_base_funcs.h" 1 3 ># 68 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator_base_funcs.h" 3 > ># 69 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator_base_funcs.h" 3 > > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _InputIterator> > inline typename iterator_traits<_InputIterator>::difference_type > __distance(_InputIterator __first, _InputIterator __last, > input_iterator_tag) > { > > > > typename iterator_traits<_InputIterator>::difference_type __n = 0; > while (__first != __last) > { > ++__first; > ++__n; > } > return __n; > } > > template<typename _RandomAccessIterator> > inline typename iterator_traits<_RandomAccessIterator>::difference_type > __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, > random_access_iterator_tag) > { > > > > return __last - __first; > } ># 113 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator_base_funcs.h" 3 > template<typename _InputIterator> > inline typename iterator_traits<_InputIterator>::difference_type > distance(_InputIterator __first, _InputIterator __last) > { > > return std::__distance(__first, __last, > std::__iterator_category(__first)); > } > > template<typename _InputIterator, typename _Distance> > inline void > __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) > { > > > while (__n--) > ++__i; > } > > template<typename _BidirectionalIterator, typename _Distance> > inline void > __advance(_BidirectionalIterator& __i, _Distance __n, > bidirectional_iterator_tag) > { > > > > if (__n > 0) > while (__n--) > ++__i; > else > while (__n++) > --__i; > } > > template<typename _RandomAccessIterator, typename _Distance> > inline void > __advance(_RandomAccessIterator& __i, _Distance __n, > random_access_iterator_tag) > { > > > > __i += __n; > } ># 171 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator_base_funcs.h" 3 > template<typename _InputIterator, typename _Distance> > inline void > advance(_InputIterator& __i, _Distance __n) > { > > typename iterator_traits<_InputIterator>::difference_type __d = __n; > std::__advance(__i, __d, std::__iterator_category(__i)); > } > >} ># 74 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 1 3 ># 73 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { ># 94 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > template<typename _Iterator> > class reverse_iterator > : public iterator<typename iterator_traits<_Iterator>::iterator_category, > typename iterator_traits<_Iterator>::value_type, > typename iterator_traits<_Iterator>::difference_type, > typename iterator_traits<_Iterator>::pointer, > typename iterator_traits<_Iterator>::reference> > { > protected: > _Iterator current; > > public: > typedef _Iterator iterator_type; > typedef typename iterator_traits<_Iterator>::difference_type > difference_type; > typedef typename iterator_traits<_Iterator>::reference reference; > typedef typename iterator_traits<_Iterator>::pointer pointer; > > public: > > > > > > > reverse_iterator() : current() { } > > > > > explicit > reverse_iterator(iterator_type __x) : current(__x) { } > > > > > reverse_iterator(const reverse_iterator& __x) > : current(__x.current) { } > > > > > > template<typename _Iter> > reverse_iterator(const reverse_iterator<_Iter>& __x) > : current(__x.base()) { } > > > > > iterator_type > base() const > { return current; } > > > > > > > reference > operator*() const > { > _Iterator __tmp = current; > return *--__tmp; > } > > > > > > > pointer > operator->() const > { return &(operator*()); } > > > > > > > reverse_iterator& > operator++() > { > --current; > return *this; > } > > > > > > > reverse_iterator > operator++(int) > { > reverse_iterator __tmp = *this; > --current; > return __tmp; > } > > > > > > > reverse_iterator& > operator--() > { > ++current; > return *this; > } > > > > > > > reverse_iterator > operator--(int) > { > reverse_iterator __tmp = *this; > ++current; > return __tmp; > } > > > > > > > reverse_iterator > operator+(difference_type __n) const > { return reverse_iterator(current - __n); } > > > > > > > reverse_iterator& > operator+=(difference_type __n) > { > current -= __n; > return *this; > } > > > > > > > reverse_iterator > operator-(difference_type __n) const > { return reverse_iterator(current + __n); } > > > > > > > reverse_iterator& > operator-=(difference_type __n) > { > current += __n; > return *this; > } > > > > > > > reference > operator[](difference_type __n) const > { return *(*this + __n); } > }; ># 281 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > template<typename _Iterator> > inline bool > operator==(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __x.base() == __y.base(); } > > template<typename _Iterator> > inline bool > operator<(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y.base() < __x.base(); } > > template<typename _Iterator> > inline bool > operator!=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__x == __y); } > > template<typename _Iterator> > inline bool > operator>(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y < __x; } > > template<typename _Iterator> > inline bool > operator<=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__y < __x); } > > template<typename _Iterator> > inline bool > operator>=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__x < __y); } > > template<typename _Iterator> > inline typename reverse_iterator<_Iterator>::difference_type > operator-(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y.base() - __x.base(); } > > template<typename _Iterator> > inline reverse_iterator<_Iterator> > operator+(typename reverse_iterator<_Iterator>::difference_type __n, > const reverse_iterator<_Iterator>& __x) > { return reverse_iterator<_Iterator>(__x.base() - __n); } > > > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator==(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return __x.base() == __y.base(); } > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator<(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return __y.base() < __x.base(); } > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator!=(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return !(__x == __y); } > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator>(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return __y < __x; } > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator<=(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return !(__y < __x); } > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator>=(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return !(__x < __y); } > > template<typename _IteratorL, typename _IteratorR> > inline typename reverse_iterator<_IteratorL>::difference_type > operator-(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return __y.base() - __x.base(); } ># 385 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > template<typename _Container> > class back_insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > > public: > > typedef _Container container_type; > > > explicit > back_insert_iterator(_Container& __x) : container(&__x) { } ># 411 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > back_insert_iterator& > operator=(typename _Container::const_reference __value) > { > container->push_back(__value); > return *this; > } ># 428 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > back_insert_iterator& > operator*() > { return *this; } > > > back_insert_iterator& > operator++() > { return *this; } > > > back_insert_iterator > operator++(int) > { return *this; } > }; ># 454 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > template<typename _Container> > inline back_insert_iterator<_Container> > back_inserter(_Container& __x) > { return back_insert_iterator<_Container>(__x); } ># 469 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > template<typename _Container> > class front_insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > > public: > > typedef _Container container_type; > > > explicit front_insert_iterator(_Container& __x) : container(&__x) { } ># 494 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > front_insert_iterator& > operator=(typename _Container::const_reference __value) > { > container->push_front(__value); > return *this; > } ># 511 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > front_insert_iterator& > operator*() > { return *this; } > > > front_insert_iterator& > operator++() > { return *this; } > > > front_insert_iterator > operator++(int) > { return *this; } > }; ># 537 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > template<typename _Container> > inline front_insert_iterator<_Container> > front_inserter(_Container& __x) > { return front_insert_iterator<_Container>(__x); } ># 556 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > template<typename _Container> > class insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > typename _Container::iterator iter; > > public: > > typedef _Container container_type; > > > > > > insert_iterator(_Container& __x, typename _Container::iterator __i) > : container(&__x), iter(__i) {} ># 598 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > insert_iterator& > operator=(typename _Container::const_reference __value) > { > iter = container->insert(iter, __value); > ++iter; > return *this; > } ># 617 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > insert_iterator& > operator*() > { return *this; } > > > insert_iterator& > operator++() > { return *this; } > > > insert_iterator& > operator++(int) > { return *this; } > }; ># 643 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > template<typename _Container, typename _Iterator> > inline insert_iterator<_Container> > inserter(_Container& __x, _Iterator __i) > { > return insert_iterator<_Container>(__x, > typename _Container::iterator(__i)); > } > >} > >namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { ># 662 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > using std::iterator_traits; > using std::iterator; > template<typename _Iterator, typename _Container> > class __normal_iterator > { > protected: > _Iterator _M_current; > > public: > typedef _Iterator iterator_type; > typedef typename iterator_traits<_Iterator>::iterator_category > iterator_category; > typedef typename iterator_traits<_Iterator>::value_type value_type; > typedef typename iterator_traits<_Iterator>::difference_type > difference_type; > typedef typename iterator_traits<_Iterator>::reference reference; > typedef typename iterator_traits<_Iterator>::pointer pointer; > > __normal_iterator() : _M_current(_Iterator()) { } > > explicit > __normal_iterator(const _Iterator& __i) : _M_current(__i) { } > > > template<typename _Iter> > __normal_iterator(const __normal_iterator<_Iter, > typename __enable_if< > (std::__are_same<_Iter, typename _Container::pointer>::__value), > _Container>::__type>& __i) > : _M_current(__i.base()) { } > > > reference > operator*() const > { return *_M_current; } > > pointer > operator->() const > { return _M_current; } > > __normal_iterator& > operator++() > { > ++_M_current; > return *this; > } > > __normal_iterator > operator++(int) > { return __normal_iterator(_M_current++); } > > > __normal_iterator& > operator--() > { > --_M_current; > return *this; > } > > __normal_iterator > operator--(int) > { return __normal_iterator(_M_current--); } > > > reference > operator[](const difference_type& __n) const > { return _M_current[__n]; } > > __normal_iterator& > operator+=(const difference_type& __n) > { _M_current += __n; return *this; } > > __normal_iterator > operator+(const difference_type& __n) const > { return __normal_iterator(_M_current + __n); } > > __normal_iterator& > operator-=(const difference_type& __n) > { _M_current -= __n; return *this; } > > __normal_iterator > operator-(const difference_type& __n) const > { return __normal_iterator(_M_current - __n); } > > const _Iterator& > base() const > { return _M_current; } > }; ># 760 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_iterator.h" 3 > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() == __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator==(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() == __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() != __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() != __rhs.base(); } > > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() < __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator<(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() < __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() > __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator>(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() > __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() <= __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() <= __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() >= __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() >= __rhs.base(); } > > > > > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline typename __normal_iterator<_IteratorL, _Container>::difference_type > operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() - __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline typename __normal_iterator<_Iterator, _Container>::difference_type > operator-(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() - __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline __normal_iterator<_Iterator, _Container> > operator+(typename __normal_iterator<_Iterator, _Container>::difference_type > __n, const __normal_iterator<_Iterator, _Container>& __i) > { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } > >} ># 75 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 2 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/debug/debug.h" 1 3 ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/debug/debug.h" 3 >namespace std >{ > namespace __debug { } >} > >namespace __gnu_debug >{ > using namespace std::__debug; >} ># 77 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 2 3 > > >namespace std __attribute__ ((__visibility__ ("default"))) { > > > > > template<bool _BoolType> > struct __iter_swap > { > template<typename _ForwardIterator1, typename _ForwardIterator2> > static void > iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) > { > typedef typename iterator_traits<_ForwardIterator1>::value_type > _ValueType1; > _ValueType1 __tmp = (*__a); > *__a = (*__b); > *__b = (__tmp); > } > }; > > template<> > struct __iter_swap<true> > { > template<typename _ForwardIterator1, typename _ForwardIterator2> > static void > iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) > { > swap(*__a, *__b); > } > }; ># 119 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _ForwardIterator1, typename _ForwardIterator2> > inline void > iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) > { > typedef typename iterator_traits<_ForwardIterator1>::value_type > _ValueType1; > typedef typename iterator_traits<_ForwardIterator2>::value_type > _ValueType2; > > > > > > > > > > > > typedef typename iterator_traits<_ForwardIterator1>::reference > _ReferenceType1; > typedef typename iterator_traits<_ForwardIterator2>::reference > _ReferenceType2; > std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value > && __are_same<_ValueType1&, _ReferenceType1>::__value > && __are_same<_ValueType2&, _ReferenceType2>::__value>:: > iter_swap(__a, __b); > } ># 159 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _ForwardIterator1, typename _ForwardIterator2> > _ForwardIterator2 > swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, > _ForwardIterator2 __first2) > { > > > > > > ; > > for (; __first1 != __last1; ++__first1, ++__first2) > std::iter_swap(__first1, __first2); > return __first2; > } ># 186 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _Tp> > inline const _Tp& > min(const _Tp& __a, const _Tp& __b) > { > > > > if (__b < __a) > return __b; > return __a; > } ># 208 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _Tp> > inline const _Tp& > max(const _Tp& __a, const _Tp& __b) > { > > > > if (__a < __b) > return __b; > return __a; > } ># 230 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _Tp, typename _Compare> > inline const _Tp& > min(const _Tp& __a, const _Tp& __b, _Compare __comp) > { > > if (__comp(__b, __a)) > return __b; > return __a; > } ># 250 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _Tp, typename _Compare> > inline const _Tp& > max(const _Tp& __a, const _Tp& __b, _Compare __comp) > { > > if (__comp(__a, __b)) > return __b; > return __a; > } > > > > > template<typename _Iterator, > bool _IsNormal = __is_normal_iterator<_Iterator>::__value> > struct __niter_base > { > static _Iterator > __b(_Iterator __it) > { return __it; } > }; > > template<typename _Iterator> > struct __niter_base<_Iterator, true> > { > static typename _Iterator::iterator_type > __b(_Iterator __it) > { return __it.base(); } > }; > > > template<typename _Iterator, > bool _IsMove = __is_move_iterator<_Iterator>::__value> > struct __miter_base > { > static _Iterator > __b(_Iterator __it) > { return __it; } > }; > > template<typename _Iterator> > struct __miter_base<_Iterator, true> > { > static typename _Iterator::iterator_type > __b(_Iterator __it) > { return __it.base(); } > }; > > > > > > > > template<bool, bool, typename> > struct __copy_move > { > template<typename _II, typename _OI> > static _OI > __copy_m(_II __first, _II __last, _OI __result) > { > for (; __first != __last; ++__result, ++__first) > *__result = *__first; > return __result; > } > }; ># 332 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<> > struct __copy_move<false, false, random_access_iterator_tag> > { > template<typename _II, typename _OI> > static _OI > __copy_m(_II __first, _II __last, _OI __result) > { > typedef typename iterator_traits<_II>::difference_type _Distance; > for(_Distance __n = __last - __first; __n > 0; --__n) > { > *__result = *__first; > ++__first; > ++__result; > } > return __result; > } > }; ># 370 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<bool _IsMove> > struct __copy_move<_IsMove, true, random_access_iterator_tag> > { > template<typename _Tp> > static _Tp* > __copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result) > { > __builtin_memmove(__result, __first, > sizeof(_Tp) * (__last - __first)); > return __result + (__last - __first); > } > }; > > template<bool _IsMove, typename _II, typename _OI> > inline _OI > __copy_move_a(_II __first, _II __last, _OI __result) > { > typedef typename iterator_traits<_II>::value_type _ValueTypeI; > typedef typename iterator_traits<_OI>::value_type _ValueTypeO; > typedef typename iterator_traits<_II>::iterator_category _Category; > const bool __simple = (__is_pod(_ValueTypeI) > && __is_pointer<_II>::__value > && __is_pointer<_OI>::__value > && __are_same<_ValueTypeI, _ValueTypeO>::__value); > > return std::__copy_move<_IsMove, __simple, > _Category>::__copy_m(__first, __last, __result); > } > > > > template<typename _CharT> > struct char_traits; > > template<typename _CharT, typename _Traits> > class istreambuf_iterator; > > template<typename _CharT, typename _Traits> > class ostreambuf_iterator; > > template<bool _IsMove, typename _CharT> > typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, > ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type > __copy_move_a2(_CharT*, _CharT*, > ostreambuf_iterator<_CharT, char_traits<_CharT> >); > > template<bool _IsMove, typename _CharT> > typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, > ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type > __copy_move_a2(const _CharT*, const _CharT*, > ostreambuf_iterator<_CharT, char_traits<_CharT> >); > > template<bool _IsMove, typename _CharT> > typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, > _CharT*>::__type > __copy_move_a2(istreambuf_iterator<_CharT, char_traits<_CharT> >, > istreambuf_iterator<_CharT, char_traits<_CharT> >, _CharT*); > > template<bool _IsMove, typename _II, typename _OI> > inline _OI > __copy_move_a2(_II __first, _II __last, _OI __result) > { > return _OI(std::__copy_move_a<_IsMove> > (std::__niter_base<_II>::__b(__first), > std::__niter_base<_II>::__b(__last), > std::__niter_base<_OI>::__b(__result))); > } ># 454 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _II, typename _OI> > inline _OI > copy(_II __first, _II __last, _OI __result) > { > > > > > ; > > return (std::__copy_move_a2<__is_move_iterator<_II>::__value> > (std::__miter_base<_II>::__b(__first), > std::__miter_base<_II>::__b(__last), __result)); > } ># 506 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<bool, bool, typename> > struct __copy_move_backward > { > template<typename _BI1, typename _BI2> > static _BI2 > __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) > { > while (__first != __last) > *--__result = *--__last; > return __result; > } > }; ># 534 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<> > struct __copy_move_backward<false, false, random_access_iterator_tag> > { > template<typename _BI1, typename _BI2> > static _BI2 > __copy_move_b(_BI1 __first, _BI1 __last, _BI2 __result) > { > typename iterator_traits<_BI1>::difference_type __n; > for (__n = __last - __first; __n > 0; --__n) > *--__result = *--__last; > return __result; > } > }; ># 564 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<bool _IsMove> > struct __copy_move_backward<_IsMove, true, random_access_iterator_tag> > { > template<typename _Tp> > static _Tp* > __copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result) > { > const ptrdiff_t _Num = __last - __first; > __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); > return __result - _Num; > } > }; > > template<bool _IsMove, typename _BI1, typename _BI2> > inline _BI2 > __copy_move_backward_a(_BI1 __first, _BI1 __last, _BI2 __result) > { > typedef typename iterator_traits<_BI1>::value_type _ValueType1; > typedef typename iterator_traits<_BI2>::value_type _ValueType2; > typedef typename iterator_traits<_BI1>::iterator_category _Category; > const bool __simple = (__is_pod(_ValueType1) > && __is_pointer<_BI1>::__value > && __is_pointer<_BI2>::__value > && __are_same<_ValueType1, _ValueType2>::__value); > > return std::__copy_move_backward<_IsMove, __simple, > _Category>::__copy_move_b(__first, > __last, > __result); > } > > template<bool _IsMove, typename _BI1, typename _BI2> > inline _BI2 > __copy_move_backward_a2(_BI1 __first, _BI1 __last, _BI2 __result) > { > return _BI2(std::__copy_move_backward_a<_IsMove> > (std::__niter_base<_BI1>::__b(__first), > std::__niter_base<_BI1>::__b(__last), > std::__niter_base<_BI2>::__b(__result))); > } ># 622 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _BI1, typename _BI2> > inline _BI2 > copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) > { > > > > > > > ; > > return (std::__copy_move_backward_a2<__is_move_iterator<_BI1>::__value> > (std::__miter_base<_BI1>::__b(__first), > std::__miter_base<_BI1>::__b(__last), __result)); > } ># 679 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _ForwardIterator, typename _Tp> > inline typename > __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, void>::__type > __fill_a(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __value) > { > for (; __first != __last; ++__first) > *__first = __value; > } > > template<typename _ForwardIterator, typename _Tp> > inline typename > __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type > __fill_a(_ForwardIterator __first, _ForwardIterator __last, _Tp __value) > { > for (; __first != __last; ++__first) > *__first = __value; > } > > > template<typename _Tp> > inline typename > __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type > __fill_a(_Tp* __first, _Tp* __last, _Tp __c) > { __builtin_memset(__first, static_cast<unsigned char>(__c), > __last - __first); } ># 717 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _ForwardIterator, typename _Tp> > inline void > fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) > { > > > > ; > > std::__fill_a(std::__niter_base<_ForwardIterator>::__b(__first), > std::__niter_base<_ForwardIterator>::__b(__last), __value); > } > > template<typename _OutputIterator, typename _Size, typename _Tp> > inline typename > __gnu_cxx::__enable_if<!__is_scalar<_Tp>::__value, _OutputIterator>::__type > __fill_n_a(_OutputIterator __first, _Size __n, const _Tp& __value) > { > for (; __n > 0; --__n, ++__first) > *__first = __value; > return __first; > } > > template<typename _OutputIterator, typename _Size, typename _Tp> > inline typename > __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type > __fill_n_a(_OutputIterator __first, _Size __n, _Tp __value) > { > for (; __n > 0; --__n, ++__first) > *__first = __value; > return __first; > } > > template<typename _Size, typename _Tp> > inline typename > __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp*>::__type > __fill_n_a(_Tp* __first, _Size __n, _Tp __c) > { > std::__fill_a(__first, __first + __n, __c); > return __first + __n; > } ># 770 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _OI, typename _Size, typename _Tp> > inline _OI > fill_n(_OI __first, _Size __n, const _Tp& __value) > { > > > > return _OI(std::__fill_n_a(std::__niter_base<_OI>::__b(__first), > __n, __value)); > } > > template<bool _BoolType> > struct __equal > { > template<typename _II1, typename _II2> > static bool > equal(_II1 __first1, _II1 __last1, _II2 __first2) > { > for (; __first1 != __last1; ++__first1, ++__first2) > if (!(*__first1 == *__first2)) > return false; > return true; > } > }; > > template<> > struct __equal<true> > { > template<typename _Tp> > static bool > equal(const _Tp* __first1, const _Tp* __last1, const _Tp* __first2) > { > return !__builtin_memcmp(__first1, __first2, sizeof(_Tp) > * (__last1 - __first1)); > } > }; > > template<typename _II1, typename _II2> > inline bool > __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2) > { > typedef typename iterator_traits<_II1>::value_type _ValueType1; > typedef typename iterator_traits<_II2>::value_type _ValueType2; > const bool __simple = (__is_integer<_ValueType1>::__value > && __is_pointer<_II1>::__value > && __is_pointer<_II2>::__value > && __are_same<_ValueType1, _ValueType2>::__value); > > return std::__equal<__simple>::equal(__first1, __last1, __first2); > } > > > template<typename, typename> > struct __lc_rai > { > template<typename _II1, typename _II2> > static _II1 > __newlast1(_II1, _II1 __last1, _II2, _II2) > { return __last1; } > > template<typename _II> > static bool > __cnd2(_II __first, _II __last) > { return __first != __last; } > }; > > template<> > struct __lc_rai<random_access_iterator_tag, random_access_iterator_tag> > { > template<typename _RAI1, typename _RAI2> > static _RAI1 > __newlast1(_RAI1 __first1, _RAI1 __last1, > _RAI2 __first2, _RAI2 __last2) > { > const typename iterator_traits<_RAI1>::difference_type > __diff1 = __last1 - __first1; > const typename iterator_traits<_RAI2>::difference_type > __diff2 = __last2 - __first2; > return __diff2 < __diff1 ? __first1 + __diff2 : __last1; > } > > template<typename _RAI> > static bool > __cnd2(_RAI, _RAI) > { return true; } > }; > > template<bool _BoolType> > struct __lexicographical_compare > { > template<typename _II1, typename _II2> > static bool __lc(_II1, _II1, _II2, _II2); > }; > > template<bool _BoolType> > template<typename _II1, typename _II2> > bool > __lexicographical_compare<_BoolType>:: > __lc(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) > { > typedef typename iterator_traits<_II1>::iterator_category _Category1; > typedef typename iterator_traits<_II2>::iterator_category _Category2; > typedef std::__lc_rai<_Category1, _Category2> __rai_type; > > __last1 = __rai_type::__newlast1(__first1, __last1, > __first2, __last2); > for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); > ++__first1, ++__first2) > { > if (*__first1 < *__first2) > return true; > if (*__first2 < *__first1) > return false; > } > return __first1 == __last1 && __first2 != __last2; > } > > template<> > struct __lexicographical_compare<true> > { > template<typename _Tp, typename _Up> > static bool > __lc(const _Tp* __first1, const _Tp* __last1, > const _Up* __first2, const _Up* __last2) > { > const size_t __len1 = __last1 - __first1; > const size_t __len2 = __last2 - __first2; > const int __result = __builtin_memcmp(__first1, __first2, > std::min(__len1, __len2)); > return __result != 0 ? __result < 0 : __len1 < __len2; > } > }; > > template<typename _II1, typename _II2> > inline bool > __lexicographical_compare_aux(_II1 __first1, _II1 __last1, > _II2 __first2, _II2 __last2) > { > typedef typename iterator_traits<_II1>::value_type _ValueType1; > typedef typename iterator_traits<_II2>::value_type _ValueType2; > const bool __simple = > (__is_byte<_ValueType1>::__value && __is_byte<_ValueType2>::__value > && !__gnu_cxx::__numeric_traits<_ValueType1>::__is_signed > && !__gnu_cxx::__numeric_traits<_ValueType2>::__is_signed > && __is_pointer<_II1>::__value > && __is_pointer<_II2>::__value); > > return std::__lexicographical_compare<__simple>::__lc(__first1, __last1, > __first2, __last2); > } > >} > >namespace std __attribute__ ((__visibility__ ("default"))) { ># 936 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _II1, typename _II2> > inline bool > equal(_II1 __first1, _II1 __last1, _II2 __first2) > { > > > > > > > ; > > return std::__equal_aux(std::__niter_base<_II1>::__b(__first1), > std::__niter_base<_II1>::__b(__last1), > std::__niter_base<_II2>::__b(__first2)); > } ># 967 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _IIter1, typename _IIter2, typename _BinaryPredicate> > inline bool > equal(_IIter1 __first1, _IIter1 __last1, > _IIter2 __first2, _BinaryPredicate __binary_pred) > { > > > > ; > > for (; __first1 != __last1; ++__first1, ++__first2) > if (!bool(__binary_pred(*__first1, *__first2))) > return false; > return true; > } ># 997 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _II1, typename _II2> > inline bool > lexicographical_compare(_II1 __first1, _II1 __last1, > _II2 __first2, _II2 __last2) > { > > typedef typename iterator_traits<_II1>::value_type _ValueType1; > typedef typename iterator_traits<_II2>::value_type _ValueType2; > > > > > ; > ; > > return std::__lexicographical_compare_aux > (std::__niter_base<_II1>::__b(__first1), > std::__niter_base<_II1>::__b(__last1), > std::__niter_base<_II2>::__b(__first2), > std::__niter_base<_II2>::__b(__last2)); > } ># 1031 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _II1, typename _II2, typename _Compare> > bool > lexicographical_compare(_II1 __first1, _II1 __last1, > _II2 __first2, _II2 __last2, _Compare __comp) > { > typedef typename iterator_traits<_II1>::iterator_category _Category1; > typedef typename iterator_traits<_II2>::iterator_category _Category2; > typedef std::__lc_rai<_Category1, _Category2> __rai_type; > > > > > ; > ; > > __last1 = __rai_type::__newlast1(__first1, __last1, __first2, __last2); > for (; __first1 != __last1 && __rai_type::__cnd2(__first2, __last2); > ++__first1, ++__first2) > { > if (__comp(*__first1, *__first2)) > return true; > if (__comp(*__first2, *__first1)) > return false; > } > return __first1 == __last1 && __first2 != __last2; > } ># 1070 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _InputIterator1, typename _InputIterator2> > pair<_InputIterator1, _InputIterator2> > mismatch(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2) > { > > > > > > > ; > > while (__first1 != __last1 && *__first1 == *__first2) > { > ++__first1; > ++__first2; > } > return pair<_InputIterator1, _InputIterator2>(__first1, __first2); > } ># 1106 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_algobase.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _BinaryPredicate> > pair<_InputIterator1, _InputIterator2> > mismatch(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _BinaryPredicate __binary_pred) > { > > > > ; > > while (__first1 != __last1 && bool(__binary_pred(*__first1, *__first2))) > { > ++__first1; > ++__first2; > } > return pair<_InputIterator1, _InputIterator2>(__first1, __first2); > } > >} ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h" 2 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 1 3 ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 3 > ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 1 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 2 3 ># 50 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 2 3 ># 1 "/usr/include/stdio.h" 1 3 4 ># 51 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 2 3 ># 98 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { > > using ::FILE; > using ::fpos_t; > > using ::clearerr; > using ::fclose; > using ::feof; > using ::ferror; > using ::fflush; > using ::fgetc; > using ::fgetpos; > using ::fgets; > using ::fopen; > using ::fprintf; > using ::fputc; > using ::fputs; > using ::fread; > using ::freopen; > using ::fscanf; > using ::fseek; > using ::fsetpos; > using ::ftell; > using ::fwrite; > using ::getc; > using ::getchar; > using ::gets; > using ::perror; > using ::printf; > using ::putc; > using ::putchar; > using ::puts; > using ::remove; > using ::rename; > using ::rewind; > using ::scanf; > using ::setbuf; > using ::setvbuf; > using ::sprintf; > using ::sscanf; > using ::tmpfile; > using ::tmpnam; > using ::ungetc; > using ::vfprintf; > using ::vprintf; > using ::vsprintf; > >} ># 155 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 3 >namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { ># 170 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 3 > using ::snprintf; > using ::vfscanf; > using ::vscanf; > using ::vsnprintf; > using ::vsscanf; > > >} > >namespace std __attribute__ ((__visibility__ ("default"))) { > > using ::__gnu_cxx::snprintf; > using ::__gnu_cxx::vfscanf; > using ::__gnu_cxx::vscanf; > using ::__gnu_cxx::vsnprintf; > using ::__gnu_cxx::vsscanf; > >} ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 1 3 ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 3 > ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 1 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 2 3 ># 50 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwchar" 2 3 ># 50 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h" 2 3 > >namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { ># 63 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h" 3 > template<typename _CharT> > struct _Char_types > { > typedef unsigned long int_type; > typedef std::streampos pos_type; > typedef std::streamoff off_type; > typedef std::mbstate_t state_type; > }; ># 88 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h" 3 > template<typename _CharT> > struct char_traits > { > typedef _CharT char_type; > typedef typename _Char_types<_CharT>::int_type int_type; > typedef typename _Char_types<_CharT>::pos_type pos_type; > typedef typename _Char_types<_CharT>::off_type off_type; > typedef typename _Char_types<_CharT>::state_type state_type; > > static void > assign(char_type& __c1, const char_type& __c2) > { __c1 = __c2; } > > static bool > eq(const char_type& __c1, const char_type& __c2) > { return __c1 == __c2; } > > static bool > lt(const char_type& __c1, const char_type& __c2) > { return __c1 < __c2; } > > static int > compare(const char_type* __s1, const char_type* __s2, std::size_t __n); > > static std::size_t > length(const char_type* __s); > > static const char_type* > find(const char_type* __s, std::size_t __n, const char_type& __a); > > static char_type* > move(char_type* __s1, const char_type* __s2, std::size_t __n); > > static char_type* > copy(char_type* __s1, const char_type* __s2, std::size_t __n); > > static char_type* > assign(char_type* __s, std::size_t __n, char_type __a); > > static char_type > to_char_type(const int_type& __c) > { return static_cast<char_type>(__c); } > > static int_type > to_int_type(const char_type& __c) > { return static_cast<int_type>(__c); } > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2) > { return __c1 == __c2; } > > static int_type > eof() > { return static_cast<int_type>((-1)); } > > static int_type > not_eof(const int_type& __c) > { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } > }; > > template<typename _CharT> > int > char_traits<_CharT>:: > compare(const char_type* __s1, const char_type* __s2, std::size_t __n) > { > for (std::size_t __i = 0; __i < __n; ++__i) > if (lt(__s1[__i], __s2[__i])) > return -1; > else if (lt(__s2[__i], __s1[__i])) > return 1; > return 0; > } > > template<typename _CharT> > std::size_t > char_traits<_CharT>:: > length(const char_type* __p) > { > std::size_t __i = 0; > while (!eq(__p[__i], char_type())) > ++__i; > return __i; > } > > template<typename _CharT> > const typename char_traits<_CharT>::char_type* > char_traits<_CharT>:: > find(const char_type* __s, std::size_t __n, const char_type& __a) > { > for (std::size_t __i = 0; __i < __n; ++__i) > if (eq(__s[__i], __a)) > return __s + __i; > return 0; > } > > template<typename _CharT> > typename char_traits<_CharT>::char_type* > char_traits<_CharT>:: > move(char_type* __s1, const char_type* __s2, std::size_t __n) > { > return static_cast<_CharT*>(__builtin_memmove(__s1, __s2, > __n * sizeof(char_type))); > } > > template<typename _CharT> > typename char_traits<_CharT>::char_type* > char_traits<_CharT>:: > copy(char_type* __s1, const char_type* __s2, std::size_t __n) > { > > std::copy(__s2, __s2 + __n, __s1); > return __s1; > } > > template<typename _CharT> > typename char_traits<_CharT>::char_type* > char_traits<_CharT>:: > assign(char_type* __s, std::size_t __n, char_type __a) > { > > std::fill_n(__s, __n, __a); > return __s; > } > >} > >namespace std __attribute__ ((__visibility__ ("default"))) { ># 229 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/char_traits.h" 3 > template<class _CharT> > struct char_traits : public __gnu_cxx::char_traits<_CharT> > { }; > > > > template<> > struct char_traits<char> > { > typedef char char_type; > typedef int int_type; > typedef streampos pos_type; > typedef streamoff off_type; > typedef mbstate_t state_type; > > static void > assign(char_type& __c1, const char_type& __c2) > { __c1 = __c2; } > > static bool > eq(const char_type& __c1, const char_type& __c2) > { return __c1 == __c2; } > > static bool > lt(const char_type& __c1, const char_type& __c2) > { return __c1 < __c2; } > > static int > compare(const char_type* __s1, const char_type* __s2, size_t __n) > { return __builtin_memcmp(__s1, __s2, __n); } > > static size_t > length(const char_type* __s) > { return __builtin_strlen(__s); } > > static const char_type* > find(const char_type* __s, size_t __n, const char_type& __a) > { return static_cast<const char_type*>(__builtin_memchr(__s, __a, __n)); } > > static char_type* > move(char_type* __s1, const char_type* __s2, size_t __n) > { return static_cast<char_type*>(__builtin_memmove(__s1, __s2, __n)); } > > static char_type* > copy(char_type* __s1, const char_type* __s2, size_t __n) > { return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n)); } > > static char_type* > assign(char_type* __s, size_t __n, char_type __a) > { return static_cast<char_type*>(__builtin_memset(__s, __a, __n)); } > > static char_type > to_char_type(const int_type& __c) > { return static_cast<char_type>(__c); } > > > > static int_type > to_int_type(const char_type& __c) > { return static_cast<int_type>(static_cast<unsigned char>(__c)); } > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2) > { return __c1 == __c2; } > > static int_type > eof() { return static_cast<int_type>((-1)); } > > static int_type > not_eof(const int_type& __c) > { return (__c == eof()) ? 0 : __c; } > }; > > > > > template<> > struct char_traits<wchar_t> > { > typedef wchar_t char_type; > typedef wint_t int_type; > typedef streamoff off_type; > typedef wstreampos pos_type; > typedef mbstate_t state_type; > > static void > assign(char_type& __c1, const char_type& __c2) > { __c1 = __c2; } > > static bool > eq(const char_type& __c1, const char_type& __c2) > { return __c1 == __c2; } > > static bool > lt(const char_type& __c1, const char_type& __c2) > { return __c1 < __c2; } > > static int > compare(const char_type* __s1, const char_type* __s2, size_t __n) > { return wmemcmp(__s1, __s2, __n); } > > static size_t > length(const char_type* __s) > { return wcslen(__s); } > > static const char_type* > find(const char_type* __s, size_t __n, const char_type& __a) > { return wmemchr(__s, __a, __n); } > > static char_type* > move(char_type* __s1, const char_type* __s2, size_t __n) > { return wmemmove(__s1, __s2, __n); } > > static char_type* > copy(char_type* __s1, const char_type* __s2, size_t __n) > { return wmemcpy(__s1, __s2, __n); } > > static char_type* > assign(char_type* __s, size_t __n, char_type __a) > { return wmemset(__s, __a, __n); } > > static char_type > to_char_type(const int_type& __c) { return char_type(__c); } > > static int_type > to_int_type(const char_type& __c) { return int_type(__c); } > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2) > { return __c1 == __c2; } > > static int_type > eof() { return static_cast<int_type>((0xffffffffu)); } > > static int_type > not_eof(const int_type& __c) > { return eq_int_type(__c, eof()) ? 0 : __c; } > }; > > >} ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ios" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/localefwd.h" 1 3 ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/localefwd.h" 3 > ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/localefwd.h" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++locale.h" 1 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++locale.h" 3 > ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++locale.h" 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/clocale" 1 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/clocale" 3 > ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/clocale" 3 > > ># 1 "/usr/include/locale.h" 1 3 4 ># 29 "/usr/include/locale.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 30 "/usr/include/locale.h" 2 3 4 ># 1 "/usr/include/bits/locale.h" 1 3 4 ># 27 "/usr/include/bits/locale.h" 3 4 >enum >{ > __LC_CTYPE = 0, > __LC_NUMERIC = 1, > __LC_TIME = 2, > __LC_COLLATE = 3, > __LC_MONETARY = 4, > __LC_MESSAGES = 5, > __LC_ALL = 6, > __LC_PAPER = 7, > __LC_NAME = 8, > __LC_ADDRESS = 9, > __LC_TELEPHONE = 10, > __LC_MEASUREMENT = 11, > __LC_IDENTIFICATION = 12 >}; ># 31 "/usr/include/locale.h" 2 3 4 > >extern "C" { ># 51 "/usr/include/locale.h" 3 4 > > > >struct lconv >{ > > > char *decimal_point; > char *thousands_sep; > > > > > > char *grouping; > > > > > > char *int_curr_symbol; > char *currency_symbol; > char *mon_decimal_point; > char *mon_thousands_sep; > char *mon_grouping; > char *positive_sign; > char *negative_sign; > char int_frac_digits; > char frac_digits; > > char p_cs_precedes; > > char p_sep_by_space; > > char n_cs_precedes; > > char n_sep_by_space; > > > > > > > char p_sign_posn; > char n_sign_posn; > > > char int_p_cs_precedes; > > char int_p_sep_by_space; > > char int_n_cs_precedes; > > char int_n_sep_by_space; > > > > > > > char int_p_sign_posn; > char int_n_sign_posn; ># 121 "/usr/include/locale.h" 3 4 >}; > > > >extern char *setlocale (int __category, __const char *__locale) throw (); > > >extern struct lconv *localeconv (void) throw (); > > ># 148 "/usr/include/locale.h" 3 4 >typedef __locale_t locale_t; > > > > > >extern __locale_t newlocale (int __category_mask, __const char *__locale, > __locale_t __base) throw (); ># 189 "/usr/include/locale.h" 3 4 >extern __locale_t duplocale (__locale_t __dataset) throw (); > > > >extern void freelocale (__locale_t __dataset) throw (); > > > > > > >extern __locale_t uselocale (__locale_t __dataset) throw (); > > > > > > > >} ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/clocale" 2 3 ># 57 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/clocale" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { > > using ::lconv; > using ::setlocale; > using ::localeconv; > >} ># 48 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++locale.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 1 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 2 3 ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++locale.h" 2 3 > > > > > > >namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { > > extern "C" __typeof(uselocale) __uselocale; > >} > > >namespace std __attribute__ ((__visibility__ ("default"))) { > > typedef __locale_t __c_locale; > > > > > > inline int > __convert_from_v(const __c_locale& __cloc __attribute__ ((__unused__)), > char* __out, > const int __size __attribute__ ((__unused__)), > const char* __fmt, ...) > { > > __c_locale __old = __gnu_cxx::__uselocale(__cloc); ># 90 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++locale.h" 3 > __builtin_va_list __args; > __builtin_va_start(__args, __fmt); > > > const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); > > > > > __builtin_va_end(__args); > > > __gnu_cxx::__uselocale(__old); > > > > > > > > return __ret; > } > >} ># 48 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/localefwd.h" 2 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cctype" 1 3 ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cctype" 3 > ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cctype" 3 > > ># 1 "/usr/include/ctype.h" 1 3 4 ># 50 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cctype" 2 3 ># 69 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cctype" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { > > using ::isalnum; > using ::isalpha; > using ::iscntrl; > using ::isdigit; > using ::isgraph; > using ::islower; > using ::isprint; > using ::ispunct; > using ::isspace; > using ::isupper; > using ::isxdigit; > using ::tolower; > using ::toupper; > >} ># 50 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/localefwd.h" 2 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { > > > class locale; > > template<typename _Facet> > bool > has_facet(const locale&) throw(); > > template<typename _Facet> > const _Facet& > use_facet(const locale&); > > > template<typename _CharT> > bool > isspace(_CharT, const locale&); > > template<typename _CharT> > bool > isprint(_CharT, const locale&); > > template<typename _CharT> > bool > iscntrl(_CharT, const locale&); > > template<typename _CharT> > bool > isupper(_CharT, const locale&); > > template<typename _CharT> > bool > islower(_CharT, const locale&); > > template<typename _CharT> > bool > isalpha(_CharT, const locale&); > > template<typename _CharT> > bool > isdigit(_CharT, const locale&); > > template<typename _CharT> > bool > ispunct(_CharT, const locale&); > > template<typename _CharT> > bool > isxdigit(_CharT, const locale&); > > template<typename _CharT> > bool > isalnum(_CharT, const locale&); > > template<typename _CharT> > bool > isgraph(_CharT, const locale&); > > template<typename _CharT> > _CharT > toupper(_CharT, const locale&); > > template<typename _CharT> > _CharT > tolower(_CharT, const locale&); > > > class ctype_base; > template<typename _CharT> > class ctype; > template<> class ctype<char>; > > template<> class ctype<wchar_t>; > > template<typename _CharT> > class ctype_byname; > > > class codecvt_base; > template<typename _InternT, typename _ExternT, typename _StateT> > class codecvt; > template<> class codecvt<char, char, mbstate_t>; > > template<> class codecvt<wchar_t, char, mbstate_t>; > > template<typename _InternT, typename _ExternT, typename _StateT> > class codecvt_byname; > > > > template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > > class num_get; > template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > > class num_put; > > template<typename _CharT> class numpunct; > template<typename _CharT> class numpunct_byname; > > > template<typename _CharT> > class collate; > template<typename _CharT> class > collate_byname; > > > class time_base; > template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > > class time_get; > template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > > class time_get_byname; > template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > > class time_put; > template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > > class time_put_byname; > > > class money_base; > > template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > > class money_get; > template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> > > class money_put; > > template<typename _CharT, bool _Intl = false> > class moneypunct; > template<typename _CharT, bool _Intl = false> > class moneypunct_byname; > > > class messages_base; > template<typename _CharT> > class messages; > template<typename _CharT> > class messages_byname; > >} ># 48 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ios" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 1 3 ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/atomicity.h" 1 3 ># 39 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/atomicity.h" 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/gthr.h" 1 3 ># 33 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/gthr.h" 3 >#pragma GCC visibility push(default) ># 132 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/gthr.h" 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/gthr-default.h" 1 3 ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/gthr-default.h" 3 ># 1 "/usr/include/pthread.h" 1 3 4 ># 25 "/usr/include/pthread.h" 3 4 ># 1 "/usr/include/sched.h" 1 3 4 ># 29 "/usr/include/sched.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 30 "/usr/include/sched.h" 2 3 4 > > > > > ># 1 "/usr/include/bits/sched.h" 1 3 4 ># 66 "/usr/include/bits/sched.h" 3 4 >struct sched_param > { > int __sched_priority; > }; > >extern "C" { > > > >extern int clone (int (*__fn) (void *__arg), void *__child_stack, > int __flags, void *__arg, ...) throw (); > > >extern int unshare (int __flags) throw (); > > >extern int sched_getcpu (void) throw (); > > >} > > > > > > > >struct __sched_param > { > int __sched_priority; > }; ># 108 "/usr/include/bits/sched.h" 3 4 >typedef unsigned long int __cpu_mask; > > > > > > >typedef struct >{ > __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; >} cpu_set_t; ># 186 "/usr/include/bits/sched.h" 3 4 >extern "C" { > >extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) > throw (); >extern cpu_set_t *__sched_cpualloc (size_t __count) throw () __attribute__ ((__warn_unused_result__)); >extern void __sched_cpufree (cpu_set_t *__set) throw (); > >} ># 36 "/usr/include/sched.h" 2 3 4 > > > > >extern "C" { > > >extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param) > throw (); > > >extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); > > >extern int sched_setscheduler (__pid_t __pid, int __policy, > __const struct sched_param *__param) throw (); > > >extern int sched_getscheduler (__pid_t __pid) throw (); > > >extern int sched_yield (void) throw (); > > >extern int sched_get_priority_max (int __algorithm) throw (); > > >extern int sched_get_priority_min (int __algorithm) throw (); > > >extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); ># 110 "/usr/include/sched.h" 3 4 >extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, > __const cpu_set_t *__cpuset) throw (); > > >extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, > cpu_set_t *__cpuset) throw (); > > >} ># 26 "/usr/include/pthread.h" 2 3 4 > > > > > ># 1 "/usr/include/bits/setjmp.h" 1 3 4 ># 29 "/usr/include/bits/setjmp.h" 3 4 >typedef int __jmp_buf[6]; ># 32 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 33 "/usr/include/pthread.h" 2 3 4 > > > >enum >{ > PTHREAD_CREATE_JOINABLE, > > PTHREAD_CREATE_DETACHED > >}; > > > >enum >{ > PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_ADAPTIVE_NP > > , > PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL > > > > , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP > >}; > > > > >enum >{ > PTHREAD_MUTEX_STALLED_NP, > PTHREAD_MUTEX_ROBUST_NP >}; > > > > > >enum >{ > PTHREAD_PRIO_NONE, > PTHREAD_PRIO_INHERIT, > PTHREAD_PRIO_PROTECT >}; ># 115 "/usr/include/pthread.h" 3 4 >enum >{ > PTHREAD_RWLOCK_PREFER_READER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, > PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP >}; ># 147 "/usr/include/pthread.h" 3 4 >enum >{ > PTHREAD_INHERIT_SCHED, > > PTHREAD_EXPLICIT_SCHED > >}; > > > >enum >{ > PTHREAD_SCOPE_SYSTEM, > > PTHREAD_SCOPE_PROCESS > >}; > > > >enum >{ > PTHREAD_PROCESS_PRIVATE, > > PTHREAD_PROCESS_SHARED > >}; ># 182 "/usr/include/pthread.h" 3 4 >struct _pthread_cleanup_buffer >{ > void (*__routine) (void *); > void *__arg; > int __canceltype; > struct _pthread_cleanup_buffer *__prev; >}; > > >enum >{ > PTHREAD_CANCEL_ENABLE, > > PTHREAD_CANCEL_DISABLE > >}; >enum >{ > PTHREAD_CANCEL_DEFERRED, > > PTHREAD_CANCEL_ASYNCHRONOUS > >}; ># 220 "/usr/include/pthread.h" 3 4 >extern "C" { > > > > >extern int pthread_create (pthread_t *__restrict __newthread, > __const pthread_attr_t *__restrict __attr, > void *(*__start_routine) (void *), > void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3))); > > > > > >extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); > > > > > > > >extern int pthread_join (pthread_t __th, void **__thread_return); > > > > >extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); > > > > > > > >extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, > __const struct timespec *__abstime); > > > > > > >extern int pthread_detach (pthread_t __th) throw (); > > > >extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); > > >extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw (); > > > > > > > >extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_attr_destroy (pthread_attr_t *__attr) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, > int *__detachstate) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, > int __detachstate) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr, > size_t *__guardsize) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setguardsize (pthread_attr_t *__attr, > size_t __guardsize) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict > __attr, > struct sched_param *__restrict __param) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, > __const struct sched_param *__restrict > __param) throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict > __attr, int *__restrict __policy) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict > __attr, int *__restrict __inherit) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, > int __inherit) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr, > int *__restrict __scope) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict > __attr, void **__restrict __stackaddr) > throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); > > > > > >extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, > void *__stackaddr) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); > > >extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict > __attr, size_t *__restrict __stacksize) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int pthread_attr_setstacksize (pthread_attr_t *__attr, > size_t __stacksize) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr, > void **__restrict __stackaddr, > size_t *__restrict __stacksize) > throw () __attribute__ ((__nonnull__ (1, 2, 3))); > > > > >extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, > size_t __stacksize) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, > size_t __cpusetsize, > __const cpu_set_t *__cpuset) > throw () __attribute__ ((__nonnull__ (1, 3))); > > > >extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr, > size_t __cpusetsize, > cpu_set_t *__cpuset) > throw () __attribute__ ((__nonnull__ (1, 3))); > > > > > >extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) > throw () __attribute__ ((__nonnull__ (2))); > > > > > > > >extern int pthread_setschedparam (pthread_t __target_thread, int __policy, > __const struct sched_param *__param) > throw () __attribute__ ((__nonnull__ (3))); > > >extern int pthread_getschedparam (pthread_t __target_thread, > int *__restrict __policy, > struct sched_param *__restrict __param) > throw () __attribute__ ((__nonnull__ (2, 3))); > > >extern int pthread_setschedprio (pthread_t __target_thread, int __prio) > throw (); > > > > >extern int pthread_getconcurrency (void) throw (); > > >extern int pthread_setconcurrency (int __level) throw (); > > > > > > > >extern int pthread_yield (void) throw (); > > > > >extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, > __const cpu_set_t *__cpuset) > throw () __attribute__ ((__nonnull__ (3))); > > >extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, > cpu_set_t *__cpuset) > throw () __attribute__ ((__nonnull__ (3))); ># 466 "/usr/include/pthread.h" 3 4 >extern int pthread_once (pthread_once_t *__once_control, > void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); ># 478 "/usr/include/pthread.h" 3 4 >extern int pthread_setcancelstate (int __state, int *__oldstate); > > > >extern int pthread_setcanceltype (int __type, int *__oldtype); > > >extern int pthread_cancel (pthread_t __th); > > > > >extern void pthread_testcancel (void); > > > > >typedef struct >{ > struct > { > __jmp_buf __cancel_jmp_buf; > int __mask_was_saved; > } __cancel_jmp_buf[1]; > void *__pad[4]; >} __pthread_unwind_buf_t __attribute__ ((__aligned__)); ># 512 "/usr/include/pthread.h" 3 4 >struct __pthread_cleanup_frame >{ > void (*__cancel_routine) (void *); > void *__cancel_arg; > int __do_it; > int __cancel_type; >}; > > > > >class __pthread_cleanup_class >{ > void (*__cancel_routine) (void *); > void *__cancel_arg; > int __do_it; > int __cancel_type; > > public: > __pthread_cleanup_class (void (*__fct) (void *), void *__arg) > : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } > ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } > void __setdoit (int __newval) { __do_it = __newval; } > void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, > &__cancel_type); } > void __restore () const { pthread_setcanceltype (__cancel_type, 0); } >}; ># 714 "/usr/include/pthread.h" 3 4 >struct __jmp_buf_tag; >extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); > > > > > >extern int pthread_mutex_init (pthread_mutex_t *__mutex, > __const pthread_mutexattr_t *__mutexattr) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutex_lock (pthread_mutex_t *__mutex) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, > __const struct timespec *__restrict > __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int pthread_mutex_getprioceiling (__const pthread_mutex_t * > __restrict __mutex, > int *__restrict __prioceiling) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, > int __prioceiling, > int *__restrict __old_ceiling) > throw () __attribute__ ((__nonnull__ (1, 3))); > > > > > >extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __pshared) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, > int __pshared) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict > __attr, int *__restrict __kind) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __protocol) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, > int __protocol) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __prioceiling) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, > int __prioceiling) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr, > int *__robustness) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, > int __robustness) > throw () __attribute__ ((__nonnull__ (1))); ># 848 "/usr/include/pthread.h" 3 4 >extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, > __const pthread_rwlockattr_t *__restrict > __attr) throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, > __const struct timespec *__restrict > __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, > __const struct timespec *__restrict > __abstime) throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t * > __restrict __attr, > int *__restrict __pshared) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, > int __pshared) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t * > __restrict __attr, > int *__restrict __pref) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, > int __pref) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int pthread_cond_init (pthread_cond_t *__restrict __cond, > __const pthread_condattr_t *__restrict > __cond_attr) throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_cond_destroy (pthread_cond_t *__cond) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_cond_signal (pthread_cond_t *__cond) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_cond_broadcast (pthread_cond_t *__cond) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex) > __attribute__ ((__nonnull__ (1, 2))); ># 960 "/usr/include/pthread.h" 3 4 >extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex, > __const struct timespec *__restrict > __abstime) __attribute__ ((__nonnull__ (1, 2, 3))); > > > > >extern int pthread_condattr_init (pthread_condattr_t *__attr) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_condattr_destroy (pthread_condattr_t *__attr) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_condattr_getpshared (__const pthread_condattr_t * > __restrict __attr, > int *__restrict __pshared) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, > int __pshared) throw () __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_condattr_getclock (__const pthread_condattr_t * > __restrict __attr, > __clockid_t *__restrict __clock_id) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_condattr_setclock (pthread_condattr_t *__attr, > __clockid_t __clock_id) > throw () __attribute__ ((__nonnull__ (1))); ># 1004 "/usr/include/pthread.h" 3 4 >extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_spin_destroy (pthread_spinlock_t *__lock) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_spin_lock (pthread_spinlock_t *__lock) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_spin_trylock (pthread_spinlock_t *__lock) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_spin_unlock (pthread_spinlock_t *__lock) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, > __const pthread_barrierattr_t *__restrict > __attr, unsigned int __count) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_barrier_wait (pthread_barrier_t *__barrier) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t * > __restrict __attr, > int *__restrict __pshared) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, > int __pshared) > throw () __attribute__ ((__nonnull__ (1))); ># 1071 "/usr/include/pthread.h" 3 4 >extern int pthread_key_create (pthread_key_t *__key, > void (*__destr_function) (void *)) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int pthread_key_delete (pthread_key_t __key) throw (); > > >extern void *pthread_getspecific (pthread_key_t __key) throw (); > > >extern int pthread_setspecific (pthread_key_t __key, > __const void *__pointer) throw () ; > > > > >extern int pthread_getcpuclockid (pthread_t __thread_id, > __clockid_t *__clock_id) > throw () __attribute__ ((__nonnull__ (2))); ># 1105 "/usr/include/pthread.h" 3 4 >extern int pthread_atfork (void (*__prepare) (void), > void (*__parent) (void), > void (*__child) (void)) throw (); > > > > >extern __inline __attribute__ ((__gnu_inline__)) int >pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () >{ > return __thread1 == __thread2; >} > > >} ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/gthr-default.h" 2 3 > > >typedef pthread_key_t __gthread_key_t; >typedef pthread_once_t __gthread_once_t; >typedef pthread_mutex_t __gthread_mutex_t; >typedef pthread_mutex_t __gthread_recursive_mutex_t; >typedef pthread_cond_t __gthread_cond_t; ># 100 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/gthr-default.h" 3 >static __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"))); >static __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"))); >static __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"))); >static __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"))); >static __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"))); >static __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"))); >static __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"))); >static __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"))); >static __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"))); >static __typeof(pthread_cond_broadcast) __gthrw_pthread_cond_broadcast __attribute__ ((__weakref__("pthread_cond_broadcast"))); >static __typeof(pthread_cond_wait) __gthrw_pthread_cond_wait __attribute__ ((__weakref__("pthread_cond_wait"))); > > >static __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"))); >static __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"))); >static __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"))); >static __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"))); >static __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"))); ># 208 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/gthr-default.h" 3 >static inline int >__gthread_active_p (void) >{ > static void *const __gthread_active_ptr > = __extension__ (void *) &__gthrw_pthread_cancel; > return __gthread_active_ptr != 0; >} ># 646 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/gthr-default.h" 3 >static inline int >__gthread_once (__gthread_once_t *once, void (*func) (void)) >{ > if (__gthread_active_p ()) > return __gthrw_pthread_once (once, func); > else > return -1; >} > >static inline int >__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) >{ > return __gthrw_pthread_key_create (key, dtor); >} > >static inline int >__gthread_key_delete (__gthread_key_t key) >{ > return __gthrw_pthread_key_delete (key); >} > >static inline void * >__gthread_getspecific (__gthread_key_t key) >{ > return __gthrw_pthread_getspecific (key); >} > >static inline int >__gthread_setspecific (__gthread_key_t key, const void *ptr) >{ > return __gthrw_pthread_setspecific (key, ptr); >} > >static inline int >__gthread_mutex_lock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return __gthrw_pthread_mutex_lock (mutex); > else > return 0; >} > >static inline int >__gthread_mutex_trylock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return __gthrw_pthread_mutex_trylock (mutex); > else > return 0; >} > >static inline int >__gthread_mutex_unlock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return __gthrw_pthread_mutex_unlock (mutex); > else > return 0; >} ># 728 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/gthr-default.h" 3 >static inline int >__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) >{ > return __gthread_mutex_lock (mutex); >} > >static inline int >__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) >{ > return __gthread_mutex_trylock (mutex); >} > >static inline int >__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) >{ > return __gthread_mutex_unlock (mutex); >} > >static inline int >__gthread_cond_broadcast (__gthread_cond_t *cond) >{ > return __gthrw_pthread_cond_broadcast (cond); >} > >static inline int >__gthread_cond_wait (__gthread_cond_t *cond, __gthread_mutex_t *mutex) >{ > return __gthrw_pthread_cond_wait (cond, mutex); >} > >static inline int >__gthread_cond_wait_recursive (__gthread_cond_t *cond, > __gthread_recursive_mutex_t *mutex) >{ > return __gthread_cond_wait (cond, mutex); >} ># 133 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/gthr.h" 2 3 > > > > > > > >#pragma GCC visibility pop ># 40 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/atomicity.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/atomic_word.h" 1 3 ># 37 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/atomic_word.h" 3 >typedef int _Atomic_word; ># 41 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/atomicity.h" 2 3 > >namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { ># 57 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/atomicity.h" 3 > _Atomic_word > __attribute__ ((__unused__)) > __exchange_and_add(volatile _Atomic_word*, int); > > void > __attribute__ ((__unused__)) > __atomic_add(volatile _Atomic_word*, int); > > > static inline _Atomic_word > __exchange_and_add_single(_Atomic_word* __mem, int __val) > { > _Atomic_word __result = *__mem; > *__mem += __val; > return __result; > } > > static inline void > __atomic_add_single(_Atomic_word* __mem, int __val) > { *__mem += __val; } > > static inline _Atomic_word > __attribute__ ((__unused__)) > __exchange_and_add_dispatch(_Atomic_word* __mem, int __val) > { > > if (__gthread_active_p()) > return __exchange_and_add(__mem, __val); > else > return __exchange_and_add_single(__mem, __val); > > > > } > > static inline void > __attribute__ ((__unused__)) > __atomic_add_dispatch(_Atomic_word* __mem, int __val) > { > > if (__gthread_active_p()) > __atomic_add(__mem, __val); > else > __atomic_add_single(__mem, __val); > > > > } > >} ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 2 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 1 3 ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/string" 1 3 ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/string" 3 > ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/string" 3 > > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/allocator.h" 1 3 ># 53 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/allocator.h" 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++allocator.h" 1 3 ># 39 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++allocator.h" 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/new_allocator.h" 1 3 ># 37 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/new_allocator.h" 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/new" 1 3 ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/new" 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 1 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 2 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/new" 2 3 > > >#pragma GCC visibility push(default) > >extern "C++" { > >namespace std >{ > > > > > > class bad_alloc : public exception > { > public: > bad_alloc() throw() { } > > > > virtual ~bad_alloc() throw(); > > > virtual const char* what() const throw(); > }; > > struct nothrow_t { }; > > extern const nothrow_t nothrow; > > > > typedef void (*new_handler)(); > > > > new_handler set_new_handler(new_handler) throw(); >} ># 95 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/new" 3 >void* operator new(std::size_t) throw (std::bad_alloc); >void* operator new[](std::size_t) throw (std::bad_alloc); >void operator delete(void*) throw(); >void operator delete[](void*) throw(); >void* operator new(std::size_t, const std::nothrow_t&) throw(); >void* operator new[](std::size_t, const std::nothrow_t&) throw(); >void operator delete(void*, const std::nothrow_t&) throw(); >void operator delete[](void*, const std::nothrow_t&) throw(); > > >inline void* operator new(std::size_t, void* __p) throw() { return __p; } >inline void* operator new[](std::size_t, void* __p) throw() { return __p; } > > >inline void operator delete (void*, void*) throw() { } >inline void operator delete[](void*, void*) throw() { } > >} > >#pragma GCC visibility pop ># 38 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/new_allocator.h" 2 3 > > > >namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { > > using std::size_t; > using std::ptrdiff_t; ># 53 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/new_allocator.h" 3 > template<typename _Tp> > class new_allocator > { > public: > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef const _Tp* const_pointer; > typedef _Tp& reference; > typedef const _Tp& const_reference; > typedef _Tp value_type; > > template<typename _Tp1> > struct rebind > { typedef new_allocator<_Tp1> other; }; > > new_allocator() throw() { } > > new_allocator(const new_allocator&) throw() { } > > template<typename _Tp1> > new_allocator(const new_allocator<_Tp1>&) throw() { } > > ~new_allocator() throw() { } > > pointer > address(reference __x) const { return &__x; } > > const_pointer > address(const_reference __x) const { return &__x; } > > > > pointer > allocate(size_type __n, const void* = 0) > { > if (__builtin_expect(__n > this->max_size(), false)) > std::__throw_bad_alloc(); > > return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); > } > > > void > deallocate(pointer __p, size_type) > { ::operator delete(__p); } > > size_type > max_size() const throw() > { return size_t(-1) / sizeof(_Tp); } > > > > void > construct(pointer __p, const _Tp& __val) > { ::new((void *)__p) _Tp(__val); } ># 117 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ext/new_allocator.h" 3 > void > destroy(pointer __p) { __p->~_Tp(); } > }; > > template<typename _Tp> > inline bool > operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&) > { return true; } > > template<typename _Tp> > inline bool > operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&) > { return false; } > >} ># 40 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/c++allocator.h" 2 3 ># 54 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/allocator.h" 2 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _Tp> > class allocator; > > > template<> > class allocator<void> > { > public: > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef void* pointer; > typedef const void* const_pointer; > typedef void value_type; > > template<typename _Tp1> > struct rebind > { typedef allocator<_Tp1> other; }; > }; > > > > > > > > template<typename _Tp> > class allocator: public __gnu_cxx::new_allocator<_Tp> > { > public: > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef const _Tp* const_pointer; > typedef _Tp& reference; > typedef const _Tp& const_reference; > typedef _Tp value_type; > > template<typename _Tp1> > struct rebind > { typedef allocator<_Tp1> other; }; > > allocator() throw() { } > > allocator(const allocator& __a) throw() > : __gnu_cxx::new_allocator<_Tp>(__a) { } > > template<typename _Tp1> > allocator(const allocator<_Tp1>&) throw() { } > > ~allocator() throw() { } > > > }; > > template<typename _T1, typename _T2> > inline bool > operator==(const allocator<_T1>&, const allocator<_T2>&) > { return true; } > > template<typename _Tp> > inline bool > operator==(const allocator<_Tp>&, const allocator<_Tp>&) > { return true; } > > template<typename _T1, typename _T2> > inline bool > operator!=(const allocator<_T1>&, const allocator<_T2>&) > { return false; } > > template<typename _Tp> > inline bool > operator!=(const allocator<_Tp>&, const allocator<_Tp>&) > { return false; } > > > > > > extern template class allocator<char>; > extern template class allocator<wchar_t>; > > > > > > > template<typename _Alloc, bool = __is_empty(_Alloc)> > struct __alloc_swap > { static void _S_do_it(_Alloc&, _Alloc&) { } }; > > template<typename _Alloc> > struct __alloc_swap<_Alloc, false> > { > static void > _S_do_it(_Alloc& __one, _Alloc& __two) > { > > if (__one != __two) > swap(__one, __two); > } > }; > > > template<typename _Alloc, bool = __is_empty(_Alloc)> > struct __alloc_neq > { > static bool > _S_do_it(const _Alloc&, const _Alloc&) > { return false; } > }; > > template<typename _Alloc> > struct __alloc_neq<_Alloc, false> > { > static bool > _S_do_it(const _Alloc& __one, const _Alloc& __two) > { return __one != __two; } > }; > >} ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/string" 2 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ostream_insert.h" 1 3 ># 38 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ostream_insert.h" 3 > ># 39 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ostream_insert.h" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cxxabi-forced.h" 1 3 ># 34 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cxxabi-forced.h" 3 >#pragma GCC visibility push(default) > > >namespace __cxxabiv1 >{ > > > class __forced_unwind > { > virtual ~__forced_unwind() throw(); > virtual void __pure_dummy() = 0; > }; >} > > >#pragma GCC visibility pop ># 42 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ostream_insert.h" 2 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _CharT, typename _Traits> > inline void > __ostream_write(basic_ostream<_CharT, _Traits>& __out, > const _CharT* __s, streamsize __n) > { > typedef basic_ostream<_CharT, _Traits> __ostream_type; > typedef typename __ostream_type::ios_base __ios_base; > > const streamsize __put = __out.rdbuf()->sputn(__s, __n); > if (__put != __n) > __out.setstate(__ios_base::badbit); > } > > template<typename _CharT, typename _Traits> > inline void > __ostream_fill(basic_ostream<_CharT, _Traits>& __out, streamsize __n) > { > typedef basic_ostream<_CharT, _Traits> __ostream_type; > typedef typename __ostream_type::ios_base __ios_base; > > const _CharT __c = __out.fill(); > for (; __n > 0; --__n) > { > const typename _Traits::int_type __put = __out.rdbuf()->sputc(__c); > if (_Traits::eq_int_type(__put, _Traits::eof())) > { > __out.setstate(__ios_base::badbit); > break; > } > } > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > __ostream_insert(basic_ostream<_CharT, _Traits>& __out, > const _CharT* __s, streamsize __n) > { > typedef basic_ostream<_CharT, _Traits> __ostream_type; > typedef typename __ostream_type::ios_base __ios_base; > > typename __ostream_type::sentry __cerb(__out); > if (__cerb) > { > try > { > const streamsize __w = __out.width(); > if (__w > __n) > { > const bool __left = ((__out.flags() > & __ios_base::adjustfield) > == __ios_base::left); > if (!__left) > __ostream_fill(__out, __w - __n); > if (__out.good()) > __ostream_write(__out, __s, __n); > if (__left && __out.good()) > __ostream_fill(__out, __w - __n); > } > else > __ostream_write(__out, __s, __n); > __out.width(0); > } > catch(__cxxabiv1::__forced_unwind&) > { > __out._M_setstate(__ios_base::badbit); > throw; > } > catch(...) > { __out._M_setstate(__ios_base::badbit); } > } > return __out; > } > > > > > > extern template ostream& __ostream_insert(ostream&, const char*, streamsize); > > > extern template wostream& __ostream_insert(wostream&, const wchar_t*, > streamsize); > > > >} ># 52 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/string" 2 3 > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_function.h" 1 3 ># 65 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_function.h" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { ># 102 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_function.h" 3 > template<typename _Arg, typename _Result> > struct unary_function > { > typedef _Arg argument_type; > > > typedef _Result result_type; > }; > > > > > template<typename _Arg1, typename _Arg2, typename _Result> > struct binary_function > { > typedef _Arg1 first_argument_type; > > > typedef _Arg2 second_argument_type; > typedef _Result result_type; > }; ># 136 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_function.h" 3 > template<typename _Tp> > struct plus : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x + __y; } > }; > > > template<typename _Tp> > struct minus : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x - __y; } > }; > > > template<typename _Tp> > struct multiplies : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x * __y; } > }; > > > template<typename _Tp> > struct divides : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x / __y; } > }; > > > template<typename _Tp> > struct modulus : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x % __y; } > }; > > > template<typename _Tp> > struct negate : public unary_function<_Tp, _Tp> > { > _Tp > operator()(const _Tp& __x) const > { return -__x; } > }; ># 198 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_function.h" 3 > template<typename _Tp> > struct equal_to : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x == __y; } > }; > > > template<typename _Tp> > struct not_equal_to : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x != __y; } > }; > > > template<typename _Tp> > struct greater : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x > __y; } > }; > > > template<typename _Tp> > struct less : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x < __y; } > }; > > > template<typename _Tp> > struct greater_equal : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x >= __y; } > }; > > > template<typename _Tp> > struct less_equal : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x <= __y; } > }; ># 260 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_function.h" 3 > template<typename _Tp> > struct logical_and : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x && __y; } > }; > > > template<typename _Tp> > struct logical_or : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x || __y; } > }; > > > template<typename _Tp> > struct logical_not : public unary_function<_Tp, bool> > { > bool > operator()(const _Tp& __x) const > { return !__x; } > }; > > > > > template<typename _Tp> > struct bit_and : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x & __y; } > }; > > template<typename _Tp> > struct bit_or : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x | __y; } > }; > > template<typename _Tp> > struct bit_xor : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x ^ __y; } > }; ># 341 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_function.h" 3 > template<typename _Predicate> > class unary_negate > : public unary_function<typename _Predicate::argument_type, bool> > { > protected: > _Predicate _M_pred; > > public: > explicit > unary_negate(const _Predicate& __x) : _M_pred(__x) { } > > bool > operator()(const typename _Predicate::argument_type& __x) const > { return !_M_pred(__x); } > }; > > > template<typename _Predicate> > inline unary_negate<_Predicate> > not1(const _Predicate& __pred) > { return unary_negate<_Predicate>(__pred); } > > > template<typename _Predicate> > class binary_negate > : public binary_function<typename _Predicate::first_argument_type, > typename _Predicate::second_argument_type, bool> > { > protected: > _Predicate _M_pred; > > public: > explicit > binary_negate(const _Predicate& __x) : _M_pred(__x) { } > > bool > operator()(const typename _Predicate::first_argument_type& __x, > const typename _Predicate::second_argument_type& __y) const > { return !_M_pred(__x, __y); } > }; > > > template<typename _Predicate> > inline binary_negate<_Predicate> > not2(const _Predicate& __pred) > { return binary_negate<_Predicate>(__pred); } ># 410 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_function.h" 3 > template<typename _Arg, typename _Result> > class pointer_to_unary_function : public unary_function<_Arg, _Result> > { > protected: > _Result (*_M_ptr)(_Arg); > > public: > pointer_to_unary_function() { } > > explicit > pointer_to_unary_function(_Result (*__x)(_Arg)) > : _M_ptr(__x) { } > > _Result > operator()(_Arg __x) const > { return _M_ptr(__x); } > }; > > > template<typename _Arg, typename _Result> > inline pointer_to_unary_function<_Arg, _Result> > ptr_fun(_Result (*__x)(_Arg)) > { return pointer_to_unary_function<_Arg, _Result>(__x); } > > > template<typename _Arg1, typename _Arg2, typename _Result> > class pointer_to_binary_function > : public binary_function<_Arg1, _Arg2, _Result> > { > protected: > _Result (*_M_ptr)(_Arg1, _Arg2); > > public: > pointer_to_binary_function() { } > > explicit > pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) > : _M_ptr(__x) { } > > _Result > operator()(_Arg1 __x, _Arg2 __y) const > { return _M_ptr(__x, __y); } > }; > > > template<typename _Arg1, typename _Arg2, typename _Result> > inline pointer_to_binary_function<_Arg1, _Arg2, _Result> > ptr_fun(_Result (*__x)(_Arg1, _Arg2)) > { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } > > > template<typename _Tp> > struct _Identity : public unary_function<_Tp,_Tp> > { > _Tp& > operator()(_Tp& __x) const > { return __x; } > > const _Tp& > operator()(const _Tp& __x) const > { return __x; } > }; > > template<typename _Pair> > struct _Select1st : public unary_function<_Pair, > typename _Pair::first_type> > { > typename _Pair::first_type& > operator()(_Pair& __x) const > { return __x.first; } > > const typename _Pair::first_type& > operator()(const _Pair& __x) const > { return __x.first; } > }; > > template<typename _Pair> > struct _Select2nd : public unary_function<_Pair, > typename _Pair::second_type> > { > typename _Pair::second_type& > operator()(_Pair& __x) const > { return __x.second; } > > const typename _Pair::second_type& > operator()(const _Pair& __x) const > { return __x.second; } > }; ># 515 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_function.h" 3 > template<typename _Ret, typename _Tp> > class mem_fun_t : public unary_function<_Tp*, _Ret> > { > public: > explicit > mem_fun_t(_Ret (_Tp::*__pf)()) > : _M_f(__pf) { } > > _Ret > operator()(_Tp* __p) const > { return (__p->*_M_f)(); } > > private: > _Ret (_Tp::*_M_f)(); > }; > > > > template<typename _Ret, typename _Tp> > class const_mem_fun_t : public unary_function<const _Tp*, _Ret> > { > public: > explicit > const_mem_fun_t(_Ret (_Tp::*__pf)() const) > : _M_f(__pf) { } > > _Ret > operator()(const _Tp* __p) const > { return (__p->*_M_f)(); } > > private: > _Ret (_Tp::*_M_f)() const; > }; > > > > template<typename _Ret, typename _Tp> > class mem_fun_ref_t : public unary_function<_Tp, _Ret> > { > public: > explicit > mem_fun_ref_t(_Ret (_Tp::*__pf)()) > : _M_f(__pf) { } > > _Ret > operator()(_Tp& __r) const > { return (__r.*_M_f)(); } > > private: > _Ret (_Tp::*_M_f)(); > }; > > > > template<typename _Ret, typename _Tp> > class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> > { > public: > explicit > const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) > : _M_f(__pf) { } > > _Ret > operator()(const _Tp& __r) const > { return (__r.*_M_f)(); } > > private: > _Ret (_Tp::*_M_f)() const; > }; > > > > template<typename _Ret, typename _Tp, typename _Arg> > class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> > { > public: > explicit > mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) > : _M_f(__pf) { } > > _Ret > operator()(_Tp* __p, _Arg __x) const > { return (__p->*_M_f)(__x); } > > private: > _Ret (_Tp::*_M_f)(_Arg); > }; > > > > template<typename _Ret, typename _Tp, typename _Arg> > class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret> > { > public: > explicit > const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) > : _M_f(__pf) { } > > _Ret > operator()(const _Tp* __p, _Arg __x) const > { return (__p->*_M_f)(__x); } > > private: > _Ret (_Tp::*_M_f)(_Arg) const; > }; > > > > template<typename _Ret, typename _Tp, typename _Arg> > class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> > { > public: > explicit > mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) > : _M_f(__pf) { } > > _Ret > operator()(_Tp& __r, _Arg __x) const > { return (__r.*_M_f)(__x); } > > private: > _Ret (_Tp::*_M_f)(_Arg); > }; > > > > template<typename _Ret, typename _Tp, typename _Arg> > class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> > { > public: > explicit > const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) > : _M_f(__pf) { } > > _Ret > operator()(const _Tp& __r, _Arg __x) const > { return (__r.*_M_f)(__x); } > > private: > _Ret (_Tp::*_M_f)(_Arg) const; > }; > > > > template<typename _Ret, typename _Tp> > inline mem_fun_t<_Ret, _Tp> > mem_fun(_Ret (_Tp::*__f)()) > { return mem_fun_t<_Ret, _Tp>(__f); } > > template<typename _Ret, typename _Tp> > inline const_mem_fun_t<_Ret, _Tp> > mem_fun(_Ret (_Tp::*__f)() const) > { return const_mem_fun_t<_Ret, _Tp>(__f); } > > template<typename _Ret, typename _Tp> > inline mem_fun_ref_t<_Ret, _Tp> > mem_fun_ref(_Ret (_Tp::*__f)()) > { return mem_fun_ref_t<_Ret, _Tp>(__f); } > > template<typename _Ret, typename _Tp> > inline const_mem_fun_ref_t<_Ret, _Tp> > mem_fun_ref(_Ret (_Tp::*__f)() const) > { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } > > template<typename _Ret, typename _Tp, typename _Arg> > inline mem_fun1_t<_Ret, _Tp, _Arg> > mem_fun(_Ret (_Tp::*__f)(_Arg)) > { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } > > template<typename _Ret, typename _Tp, typename _Arg> > inline const_mem_fun1_t<_Ret, _Tp, _Arg> > mem_fun(_Ret (_Tp::*__f)(_Arg) const) > { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } > > template<typename _Ret, typename _Tp, typename _Arg> > inline mem_fun1_ref_t<_Ret, _Tp, _Arg> > mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) > { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } > > template<typename _Ret, typename _Tp, typename _Arg> > inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> > mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) > { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } > > > >} > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/backward/binders.h" 1 3 ># 65 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/backward/binders.h" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { ># 99 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/backward/binders.h" 3 > template<typename _Operation> > class binder1st > : public unary_function<typename _Operation::second_argument_type, > typename _Operation::result_type> > { > protected: > _Operation op; > typename _Operation::first_argument_type value; > > public: > binder1st(const _Operation& __x, > const typename _Operation::first_argument_type& __y) > : op(__x), value(__y) { } > > typename _Operation::result_type > operator()(const typename _Operation::second_argument_type& __x) const > { return op(value, __x); } > > > > typename _Operation::result_type > operator()(typename _Operation::second_argument_type& __x) const > { return op(value, __x); } > } ; > > > template<typename _Operation, typename _Tp> > inline binder1st<_Operation> > bind1st(const _Operation& __fn, const _Tp& __x) > { > typedef typename _Operation::first_argument_type _Arg1_type; > return binder1st<_Operation>(__fn, _Arg1_type(__x)); > } > > > template<typename _Operation> > class binder2nd > : public unary_function<typename _Operation::first_argument_type, > typename _Operation::result_type> > { > protected: > _Operation op; > typename _Operation::second_argument_type value; > > public: > binder2nd(const _Operation& __x, > const typename _Operation::second_argument_type& __y) > : op(__x), value(__y) { } > > typename _Operation::result_type > operator()(const typename _Operation::first_argument_type& __x) const > { return op(__x, value); } > > > > typename _Operation::result_type > operator()(typename _Operation::first_argument_type& __x) const > { return op(__x, value); } > } ; > > > template<typename _Operation, typename _Tp> > inline binder2nd<_Operation> > bind2nd(const _Operation& __fn, const _Tp& __x) > { > typedef typename _Operation::second_argument_type _Arg2_type; > return binder2nd<_Operation>(__fn, _Arg2_type(__x)); > } > > >} ># 705 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/stl_function.h" 2 3 ># 56 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/string" 2 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 1 3 ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > > > > >namespace std __attribute__ ((__visibility__ ("default"))) { ># 108 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > class basic_string > { > typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type; > > > public: > typedef _Traits traits_type; > typedef typename _Traits::char_type value_type; > typedef _Alloc allocator_type; > typedef typename _CharT_alloc_type::size_type size_type; > typedef typename _CharT_alloc_type::difference_type difference_type; > typedef typename _CharT_alloc_type::reference reference; > typedef typename _CharT_alloc_type::const_reference const_reference; > typedef typename _CharT_alloc_type::pointer pointer; > typedef typename _CharT_alloc_type::const_pointer const_pointer; > typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator; > typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string> > const_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > > private: ># 145 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > struct _Rep_base > { > size_type _M_length; > size_type _M_capacity; > _Atomic_word _M_refcount; > }; > > struct _Rep : _Rep_base > { > > typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc; ># 170 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > static const size_type _S_max_size; > static const _CharT _S_terminal; > > > > static size_type _S_empty_rep_storage[]; > > static _Rep& > _S_empty_rep() > { > > > > void* __p = reinterpret_cast<void*>(&_S_empty_rep_storage); > return *reinterpret_cast<_Rep*>(__p); > } > > bool > _M_is_leaked() const > { return this->_M_refcount < 0; } > > bool > _M_is_shared() const > { return this->_M_refcount > 0; } > > void > _M_set_leaked() > { this->_M_refcount = -1; } > > void > _M_set_sharable() > { this->_M_refcount = 0; } > > void > _M_set_length_and_sharable(size_type __n) > { > this->_M_set_sharable(); > this->_M_length = __n; > traits_type::assign(this->_M_refdata()[__n], _S_terminal); > > > } > > _CharT* > _M_refdata() throw() > { return reinterpret_cast<_CharT*>(this + 1); } > > _CharT* > _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2) > { > return (!_M_is_leaked() && __alloc1 == __alloc2) > ? _M_refcopy() : _M_clone(__alloc1); > } > > > static _Rep* > _S_create(size_type, size_type, const _Alloc&); > > void > _M_dispose(const _Alloc& __a) > { > > if (__builtin_expect(this != &_S_empty_rep(), false)) > > if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount, > -1) <= 0) > _M_destroy(__a); > } > > void > _M_destroy(const _Alloc&) throw(); > > _CharT* > _M_refcopy() throw() > { > > if (__builtin_expect(this != &_S_empty_rep(), false)) > > __gnu_cxx::__atomic_add_dispatch(&this->_M_refcount, 1); > return _M_refdata(); > } > > _CharT* > _M_clone(const _Alloc&, size_type __res = 0); > }; > > > struct _Alloc_hider : _Alloc > { > _Alloc_hider(_CharT* __dat, const _Alloc& __a) > : _Alloc(__a), _M_p(__dat) { } > > _CharT* _M_p; > }; > > public: > > > > > static const size_type npos = static_cast<size_type>(-1); > > private: > > mutable _Alloc_hider _M_dataplus; > > _CharT* > _M_data() const > { return _M_dataplus._M_p; } > > _CharT* > _M_data(_CharT* __p) > { return (_M_dataplus._M_p = __p); } > > _Rep* > _M_rep() const > { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); } > > > > iterator > _M_ibegin() const > { return iterator(_M_data()); } > > iterator > _M_iend() const > { return iterator(_M_data() + this->size()); } > > void > _M_leak() > { > if (!_M_rep()->_M_is_leaked()) > _M_leak_hard(); > } > > size_type > _M_check(size_type __pos, const char* __s) const > { > if (__pos > this->size()) > __throw_out_of_range((__s)); > return __pos; > } > > void > _M_check_length(size_type __n1, size_type __n2, const char* __s) const > { > if (this->max_size() - (this->size() - __n1) < __n2) > __throw_length_error((__s)); > } > > > size_type > _M_limit(size_type __pos, size_type __off) const > { > const bool __testoff = __off < this->size() - __pos; > return __testoff ? __off : this->size() - __pos; > } > > > bool > _M_disjunct(const _CharT* __s) const > { > return (less<const _CharT*>()(__s, _M_data()) > || less<const _CharT*>()(_M_data() + this->size(), __s)); > } > > > > static void > _M_copy(_CharT* __d, const _CharT* __s, size_type __n) > { > if (__n == 1) > traits_type::assign(*__d, *__s); > else > traits_type::copy(__d, __s, __n); > } > > static void > _M_move(_CharT* __d, const _CharT* __s, size_type __n) > { > if (__n == 1) > traits_type::assign(*__d, *__s); > else > traits_type::move(__d, __s, __n); > } > > static void > _M_assign(_CharT* __d, size_type __n, _CharT __c) > { > if (__n == 1) > traits_type::assign(*__d, __c); > else > traits_type::assign(__d, __n, __c); > } > > > > template<class _Iterator> > static void > _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) > { > for (; __k1 != __k2; ++__k1, ++__p) > traits_type::assign(*__p, *__k1); > } > > static void > _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) > { _S_copy_chars(__p, __k1.base(), __k2.base()); } > > static void > _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) > { _S_copy_chars(__p, __k1.base(), __k2.base()); } > > static void > _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) > { _M_copy(__p, __k1, __k2 - __k1); } > > static void > _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) > { _M_copy(__p, __k1, __k2 - __k1); } > > static int > _S_compare(size_type __n1, size_type __n2) > { > const difference_type __d = difference_type(__n1 - __n2); > > if (__d > __gnu_cxx::__numeric_traits<int>::__max) > return __gnu_cxx::__numeric_traits<int>::__max; > else if (__d < __gnu_cxx::__numeric_traits<int>::__min) > return __gnu_cxx::__numeric_traits<int>::__min; > else > return int(__d); > } > > void > _M_mutate(size_type __pos, size_type __len1, size_type __len2); > > void > _M_leak_hard(); > > static _Rep& > _S_empty_rep() > { return _Rep::_S_empty_rep(); } > > public: > > > > > > > > inline > basic_string(); > > > > > explicit > basic_string(const _Alloc& __a); > > > > > > > basic_string(const basic_string& __str); > > > > > > > basic_string(const basic_string& __str, size_type __pos, > size_type __n = npos); > > > > > > > > basic_string(const basic_string& __str, size_type __pos, > size_type __n, const _Alloc& __a); ># 464 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string(const _CharT* __s, size_type __n, > const _Alloc& __a = _Alloc()); > > > > > > basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()); > > > > > > > basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()); > > > > > > > > template<class _InputIterator> > basic_string(_InputIterator __beg, _InputIterator __end, > const _Alloc& __a = _Alloc()); > > > > > ~basic_string() > { _M_rep()->_M_dispose(this->get_allocator()); } > > > > > > basic_string& > operator=(const basic_string& __str) > { return this->assign(__str); } > > > > > > basic_string& > operator=(const _CharT* __s) > { return this->assign(__s); } ># 519 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > operator=(_CharT __c) > { > this->assign(1, __c); > return *this; > } > > > > > > > iterator > begin() > { > _M_leak(); > return iterator(_M_data()); > } > > > > > > const_iterator > begin() const > { return const_iterator(_M_data()); } > > > > > > iterator > end() > { > _M_leak(); > return iterator(_M_data() + this->size()); > } > > > > > > const_iterator > end() const > { return const_iterator(_M_data() + this->size()); } > > > > > > > reverse_iterator > rbegin() > { return reverse_iterator(this->end()); } > > > > > > > const_reverse_iterator > rbegin() const > { return const_reverse_iterator(this->end()); } > > > > > > > reverse_iterator > rend() > { return reverse_iterator(this->begin()); } > > > > > > > const_reverse_iterator > rend() const > { return const_reverse_iterator(this->begin()); } > > public: > > > > size_type > size() const > { return _M_rep()->_M_length; } > > > > size_type > length() const > { return _M_rep()->_M_length; } > > > size_type > max_size() const > { return _Rep::_S_max_size; } ># 630 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > void > resize(size_type __n, _CharT __c); ># 643 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > void > resize(size_type __n) > { this->resize(__n, _CharT()); } > > > > > > size_type > capacity() const > { return _M_rep()->_M_capacity; } ># 672 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > void > reserve(size_type __res_arg = 0); > > > > > void > clear() > { _M_mutate(0, this->size(), 0); } > > > > > bool > empty() const > { return this->size() == 0; } ># 700 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > const_reference > operator[] (size_type __pos) const > { > ; > return _M_data()[__pos]; > } ># 717 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > reference > operator[](size_type __pos) > { > > ; > > ; > _M_leak(); > return _M_data()[__pos]; > } ># 738 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > const_reference > at(size_type __n) const > { > if (__n >= this->size()) > __throw_out_of_range(("basic_string::at")); > return _M_data()[__n]; > } ># 757 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > reference > at(size_type __n) > { > if (__n >= size()) > __throw_out_of_range(("basic_string::at")); > _M_leak(); > return _M_data()[__n]; > } > > > > > > > > basic_string& > operator+=(const basic_string& __str) > { return this->append(__str); } > > > > > > > basic_string& > operator+=(const _CharT* __s) > { return this->append(__s); } > > > > > > > basic_string& > operator+=(_CharT __c) > { > this->push_back(__c); > return *this; > } > > > > > > > basic_string& > append(const basic_string& __str); ># 817 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > append(const basic_string& __str, size_type __pos, size_type __n); > > > > > > > > basic_string& > append(const _CharT* __s, size_type __n); > > > > > > > basic_string& > append(const _CharT* __s) > { > ; > return this->append(__s, traits_type::length(__s)); > } ># 849 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > append(size_type __n, _CharT __c); ># 860 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<class _InputIterator> > basic_string& > append(_InputIterator __first, _InputIterator __last) > { return this->replace(_M_iend(), _M_iend(), __first, __last); } > > > > > > void > push_back(_CharT __c) > { > const size_type __len = 1 + this->size(); > if (__len > this->capacity() || _M_rep()->_M_is_shared()) > this->reserve(__len); > traits_type::assign(_M_data()[this->size()], __c); > _M_rep()->_M_set_length_and_sharable(__len); > } > > > > > > > basic_string& > assign(const basic_string& __str); ># 899 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > assign(const basic_string& __str, size_type __pos, size_type __n) > { return this->assign(__str._M_data() > + __str._M_check(__pos, "basic_string::assign"), > __str._M_limit(__pos, __n)); } ># 915 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > assign(const _CharT* __s, size_type __n); ># 927 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > assign(const _CharT* __s) > { > ; > return this->assign(__s, traits_type::length(__s)); > } ># 943 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > assign(size_type __n, _CharT __c) > { return _M_replace_aux(size_type(0), this->size(), __n, __c); } ># 955 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<class _InputIterator> > basic_string& > assign(_InputIterator __first, _InputIterator __last) > { return this->replace(_M_ibegin(), _M_iend(), __first, __last); } ># 972 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > void > insert(iterator __p, size_type __n, _CharT __c) > { this->replace(__p, __p, __n, __c); } ># 987 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<class _InputIterator> > void > insert(iterator __p, _InputIterator __beg, _InputIterator __end) > { this->replace(__p, __p, __beg, __end); } ># 1003 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > insert(size_type __pos1, const basic_string& __str) > { return this->insert(__pos1, __str, size_type(0), __str.size()); } ># 1025 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > insert(size_type __pos1, const basic_string& __str, > size_type __pos2, size_type __n) > { return this->insert(__pos1, __str._M_data() > + __str._M_check(__pos2, "basic_string::insert"), > __str._M_limit(__pos2, __n)); } ># 1048 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > insert(size_type __pos, const _CharT* __s, size_type __n); ># 1066 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > insert(size_type __pos, const _CharT* __s) > { > ; > return this->insert(__pos, __s, traits_type::length(__s)); > } ># 1089 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > insert(size_type __pos, size_type __n, _CharT __c) > { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), > size_type(0), __n, __c); } ># 1106 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > iterator > insert(iterator __p, _CharT __c) > { > ; > const size_type __pos = __p - _M_ibegin(); > _M_replace_aux(__pos, size_type(0), size_type(1), __c); > _M_rep()->_M_set_leaked(); > return iterator(_M_data() + __pos); > } ># 1130 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > erase(size_type __pos = 0, size_type __n = npos) > { > _M_mutate(_M_check(__pos, "basic_string::erase"), > _M_limit(__pos, __n), size_type(0)); > return *this; > } ># 1146 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > iterator > erase(iterator __position) > { > ; > > const size_type __pos = __position - _M_ibegin(); > _M_mutate(__pos, size_type(1), size_type(0)); > _M_rep()->_M_set_leaked(); > return iterator(_M_data() + __pos); > } ># 1166 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > iterator > erase(iterator __first, iterator __last) > { > ; > > const size_type __pos = __first - _M_ibegin(); > _M_mutate(__pos, __last - __first, size_type(0)); > _M_rep()->_M_set_leaked(); > return iterator(_M_data() + __pos); > } ># 1193 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > replace(size_type __pos, size_type __n, const basic_string& __str) > { return this->replace(__pos, __n, __str._M_data(), __str.size()); } ># 1215 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > replace(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) > { return this->replace(__pos1, __n1, __str._M_data() > + __str._M_check(__pos2, "basic_string::replace"), > __str._M_limit(__pos2, __n2)); } ># 1239 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > replace(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2); ># 1258 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > replace(size_type __pos, size_type __n1, const _CharT* __s) > { > ; > return this->replace(__pos, __n1, __s, traits_type::length(__s)); > } ># 1281 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) > { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), > _M_limit(__pos, __n1), __n2, __c); } ># 1299 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > replace(iterator __i1, iterator __i2, const basic_string& __str) > { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } ># 1317 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n) > { > ; > > return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n); > } ># 1338 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > replace(iterator __i1, iterator __i2, const _CharT* __s) > { > ; > return this->replace(__i1, __i2, __s, traits_type::length(__s)); > } ># 1359 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string& > replace(iterator __i1, iterator __i2, size_type __n, _CharT __c) > { > ; > > return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c); > } ># 1381 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<class _InputIterator> > basic_string& > replace(iterator __i1, iterator __i2, > _InputIterator __k1, _InputIterator __k2) > { > ; > > ; > typedef typename std::__is_integer<_InputIterator>::__type _Integral; > return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral()); > } > > > > basic_string& > replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2) > { > ; > > ; > return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1, __k2 - __k1); > } > > basic_string& > replace(iterator __i1, iterator __i2, > const _CharT* __k1, const _CharT* __k2) > { > ; > > ; > return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1, __k2 - __k1); > } > > basic_string& > replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2) > { > ; > > ; > return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1.base(), __k2 - __k1); > } > > basic_string& > replace(iterator __i1, iterator __i2, > const_iterator __k1, const_iterator __k2) > { > ; > > ; > return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1.base(), __k2 - __k1); > } > > private: > template<class _Integer> > basic_string& > _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n, > _Integer __val, __true_type) > { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); } > > template<class _InputIterator> > basic_string& > _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1, > _InputIterator __k2, __false_type); > > basic_string& > _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, > _CharT __c); > > basic_string& > _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s, > size_type __n2); > > > > template<class _InIterator> > static _CharT* > _S_construct_aux(_InIterator __beg, _InIterator __end, > const _Alloc& __a, __false_type) > { > typedef typename iterator_traits<_InIterator>::iterator_category _Tag; > return _S_construct(__beg, __end, __a, _Tag()); > } > > > > template<class _Integer> > static _CharT* > _S_construct_aux(_Integer __beg, _Integer __end, > const _Alloc& __a, __true_type) > { return _S_construct(static_cast<size_type>(__beg), __end, __a); } > > template<class _InIterator> > static _CharT* > _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a) > { > typedef typename std::__is_integer<_InIterator>::__type _Integral; > return _S_construct_aux(__beg, __end, __a, _Integral()); > } > > > template<class _InIterator> > static _CharT* > _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, > input_iterator_tag); > > > > template<class _FwdIterator> > static _CharT* > _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a, > forward_iterator_tag); > > static _CharT* > _S_construct(size_type __req, _CharT __c, const _Alloc& __a); > > public: ># 1513 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > copy(_CharT* __s, size_type __n, size_type __pos = 0) const; ># 1523 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > void > swap(basic_string& __s); ># 1533 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > const _CharT* > c_str() const > { return _M_data(); } > > > > > > > > const _CharT* > data() const > { return _M_data(); } > > > > > allocator_type > get_allocator() const > { return _M_dataplus; } ># 1565 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find(const _CharT* __s, size_type __pos, size_type __n) const; ># 1578 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find(const basic_string& __str, size_type __pos = 0) const > { return this->find(__str.data(), __pos, __str.size()); } ># 1592 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find(const _CharT* __s, size_type __pos = 0) const > { > ; > return this->find(__s, __pos, traits_type::length(__s)); > } ># 1609 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find(_CharT __c, size_type __pos = 0) const; ># 1622 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > rfind(const basic_string& __str, size_type __pos = npos) const > { return this->rfind(__str.data(), __pos, __str.size()); } ># 1637 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > rfind(const _CharT* __s, size_type __pos, size_type __n) const; ># 1650 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > rfind(const _CharT* __s, size_type __pos = npos) const > { > ; > return this->rfind(__s, __pos, traits_type::length(__s)); > } ># 1667 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > rfind(_CharT __c, size_type __pos = npos) const; ># 1680 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_first_of(const basic_string& __str, size_type __pos = 0) const > { return this->find_first_of(__str.data(), __pos, __str.size()); } ># 1695 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_first_of(const _CharT* __s, size_type __pos, size_type __n) const; ># 1708 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_first_of(const _CharT* __s, size_type __pos = 0) const > { > ; > return this->find_first_of(__s, __pos, traits_type::length(__s)); > } ># 1727 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_first_of(_CharT __c, size_type __pos = 0) const > { return this->find(__c, __pos); } ># 1741 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_last_of(const basic_string& __str, size_type __pos = npos) const > { return this->find_last_of(__str.data(), __pos, __str.size()); } ># 1756 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_last_of(const _CharT* __s, size_type __pos, size_type __n) const; ># 1769 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_last_of(const _CharT* __s, size_type __pos = npos) const > { > ; > return this->find_last_of(__s, __pos, traits_type::length(__s)); > } ># 1788 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_last_of(_CharT __c, size_type __pos = npos) const > { return this->rfind(__c, __pos); } ># 1802 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_first_not_of(const basic_string& __str, size_type __pos = 0) const > { return this->find_first_not_of(__str.data(), __pos, __str.size()); } ># 1817 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_first_not_of(const _CharT* __s, size_type __pos, > size_type __n) const; ># 1831 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_first_not_of(const _CharT* __s, size_type __pos = 0) const > { > ; > return this->find_first_not_of(__s, __pos, traits_type::length(__s)); > } ># 1848 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_first_not_of(_CharT __c, size_type __pos = 0) const; ># 1861 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_last_not_of(const basic_string& __str, size_type __pos = npos) const > { return this->find_last_not_of(__str.data(), __pos, __str.size()); } ># 1877 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_last_not_of(const _CharT* __s, size_type __pos, > size_type __n) const; ># 1890 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_last_not_of(const _CharT* __s, size_type __pos = npos) const > { > ; > return this->find_last_not_of(__s, __pos, traits_type::length(__s)); > } ># 1907 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > size_type > find_last_not_of(_CharT __c, size_type __pos = npos) const; ># 1922 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > basic_string > substr(size_type __pos = 0, size_type __n = npos) const > { return basic_string(*this, > _M_check(__pos, "basic_string::substr"), __n); } ># 1940 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > int > compare(const basic_string& __str) const > { > const size_type __size = this->size(); > const size_type __osize = __str.size(); > const size_type __len = std::min(__size, __osize); > > int __r = traits_type::compare(_M_data(), __str.data(), __len); > if (!__r) > __r = _S_compare(__size, __osize); > return __r; > } ># 1970 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > int > compare(size_type __pos, size_type __n, const basic_string& __str) const; ># 1994 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > int > compare(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) const; ># 2012 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > int > compare(const _CharT* __s) const; ># 2035 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > int > compare(size_type __pos, size_type __n1, const _CharT* __s) const; ># 2060 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > int > compare(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) const; > }; > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc>:: > basic_string() > > : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { } ># 2081 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > basic_string<_CharT, _Traits, _Alloc> __str(__lhs); > __str.append(__rhs); > return __str; > } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT,_Traits,_Alloc> > operator+(const _CharT* __lhs, > const basic_string<_CharT,_Traits,_Alloc>& __rhs); > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT,_Traits,_Alloc> > operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { > basic_string<_CharT, _Traits, _Alloc> __str(__lhs); > __str.append(__rhs); > return __str; > } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > __string_type __str(__lhs); > __str.append(__size_type(1), __rhs); > return __str; > } ># 2152 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) == 0; } > > template<typename _CharT> > inline > typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, bool>::__type > operator==(const basic_string<_CharT>& __lhs, > const basic_string<_CharT>& __rhs) > { return (__lhs.size() == __rhs.size() > && !std::char_traits<_CharT>::compare(__lhs.data(), __rhs.data(), > __lhs.size())); } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) == 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) == 0; } ># 2198 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return !(__lhs == __rhs); } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return !(__lhs == __rhs); } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return !(__lhs == __rhs); } ># 2235 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) < 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) < 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) > 0; } ># 2272 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) > 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) > 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) < 0; } ># 2309 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) <= 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) <= 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) >= 0; } ># 2346 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) >= 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) >= 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) <= 0; } ># 2383 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline void > swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, > basic_string<_CharT, _Traits, _Alloc>& __rhs) > { __lhs.swap(__rhs); } ># 2400 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > basic_istream<_CharT, _Traits>& > operator>>(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str); > > template<> > basic_istream<char>& > operator>>(basic_istream<char>& __is, basic_string<char>& __str); ># 2418 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __os, > const basic_string<_CharT, _Traits, _Alloc>& __str) > { > > > return __ostream_insert(__os, __str.data(), __str.size()); > } ># 2441 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > basic_istream<_CharT, _Traits>& > getline(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); ># 2458 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_istream<_CharT, _Traits>& > getline(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str) > { return getline(__is, __str, __is.widen('\n')); } > > template<> > basic_istream<char>& > getline(basic_istream<char>& __in, basic_string<char>& __str, > char __delim); > > > template<> > basic_istream<wchar_t>& > getline(basic_istream<wchar_t>& __in, basic_string<wchar_t>& __str, > wchar_t __delim); > > >} ># 59 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/string" 2 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.tcc" 1 3 ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.tcc" 3 > ># 48 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.tcc" 3 > > > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _CharT, typename _Traits, typename _Alloc> > const typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4; > > template<typename _CharT, typename _Traits, typename _Alloc> > const _CharT > basic_string<_CharT, _Traits, _Alloc>:: > _Rep::_S_terminal = _CharT(); > > template<typename _CharT, typename _Traits, typename _Alloc> > const typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>::npos; > > > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[ > (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) / > sizeof(size_type)]; > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InIterator> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, > input_iterator_tag) > { > > if (__beg == __end && __a == _Alloc()) > return _S_empty_rep()._M_refdata(); > > > _CharT __buf[128]; > size_type __len = 0; > while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT)) > { > __buf[__len++] = *__beg; > ++__beg; > } > _Rep* __r = _Rep::_S_create(__len, size_type(0), __a); > _M_copy(__r->_M_refdata(), __buf, __len); > try > { > while (__beg != __end) > { > if (__len == __r->_M_capacity) > { > > _Rep* __another = _Rep::_S_create(__len + 1, __len, __a); > _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len); > __r->_M_destroy(__a); > __r = __another; > } > __r->_M_refdata()[__len++] = *__beg; > ++__beg; > } > } > catch(...) > { > __r->_M_destroy(__a); > throw; > } > __r->_M_set_length_and_sharable(__len); > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > template <typename _InIterator> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, > forward_iterator_tag) > { > > if (__beg == __end && __a == _Alloc()) > return _S_empty_rep()._M_refdata(); > > > if (__builtin_expect(__gnu_cxx::__is_null_pointer(__beg) > && __beg != __end, 0)) > __throw_logic_error(("basic_string::_S_construct NULL not valid")); > > const size_type __dnew = static_cast<size_type>(std::distance(__beg, > __end)); > > _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a); > try > { _S_copy_chars(__r->_M_refdata(), __beg, __end); } > catch(...) > { > __r->_M_destroy(__a); > throw; > } > __r->_M_set_length_and_sharable(__dnew); > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(size_type __n, _CharT __c, const _Alloc& __a) > { > > if (__n == 0 && __a == _Alloc()) > return _S_empty_rep()._M_refdata(); > > > _Rep* __r = _Rep::_S_create(__n, size_type(0), __a); > if (__n) > _M_assign(__r->_M_refdata(), __n, __c); > > __r->_M_set_length_and_sharable(__n); > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str) > : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()), > __str.get_allocator()), > __str.get_allocator()) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _Alloc& __a) > : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str, size_type __pos, size_type __n) > : _M_dataplus(_S_construct(__str._M_data() > + __str._M_check(__pos, > "basic_string::basic_string"), > __str._M_data() + __str._M_limit(__pos, __n) > + __pos, _Alloc()), _Alloc()) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str, size_type __pos, > size_type __n, const _Alloc& __a) > : _M_dataplus(_S_construct(__str._M_data() > + __str._M_check(__pos, > "basic_string::basic_string"), > __str._M_data() + __str._M_limit(__pos, __n) > + __pos, __a), __a) > { } > > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _CharT* __s, size_type __n, const _Alloc& __a) > : _M_dataplus(_S_construct(__s, __s + __n, __a), __a) > { } > > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _CharT* __s, const _Alloc& __a) > : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) : > __s + npos, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(size_type __n, _CharT __c, const _Alloc& __a) > : _M_dataplus(_S_construct(__n, __c, __a), __a) > { } > > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InputIterator> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a) > : _M_dataplus(_S_construct(__beg, __end, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > assign(const basic_string& __str) > { > if (_M_rep() != __str._M_rep()) > { > > const allocator_type __a = this->get_allocator(); > _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator()); > _M_rep()->_M_dispose(__a); > _M_data(__tmp); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > assign(const _CharT* __s, size_type __n) > { > ; > _M_check_length(this->size(), __n, "basic_string::assign"); > if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) > return _M_replace_safe(size_type(0), this->size(), __s, __n); > else > { > > const size_type __pos = __s - _M_data(); > if (__pos >= __n) > _M_copy(_M_data(), __s, __n); > else if (__pos) > _M_move(_M_data(), __s, __n); > _M_rep()->_M_set_length_and_sharable(__n); > return *this; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(size_type __n, _CharT __c) > { > if (__n) > { > _M_check_length(size_type(0), __n, "basic_string::append"); > const size_type __len = __n + this->size(); > if (__len > this->capacity() || _M_rep()->_M_is_shared()) > this->reserve(__len); > _M_assign(_M_data() + this->size(), __n, __c); > _M_rep()->_M_set_length_and_sharable(__len); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const _CharT* __s, size_type __n) > { > ; > if (__n) > { > _M_check_length(size_type(0), __n, "basic_string::append"); > const size_type __len = __n + this->size(); > if (__len > this->capacity() || _M_rep()->_M_is_shared()) > { > if (_M_disjunct(__s)) > this->reserve(__len); > else > { > const size_type __off = __s - _M_data(); > this->reserve(__len); > __s = _M_data() + __off; > } > } > _M_copy(_M_data() + this->size(), __s, __n); > _M_rep()->_M_set_length_and_sharable(__len); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const basic_string& __str) > { > const size_type __size = __str.size(); > if (__size) > { > const size_type __len = __size + this->size(); > if (__len > this->capacity() || _M_rep()->_M_is_shared()) > this->reserve(__len); > _M_copy(_M_data() + this->size(), __str._M_data(), __size); > _M_rep()->_M_set_length_and_sharable(__len); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const basic_string& __str, size_type __pos, size_type __n) > { > __str._M_check(__pos, "basic_string::append"); > __n = __str._M_limit(__pos, __n); > if (__n) > { > const size_type __len = __n + this->size(); > if (__len > this->capacity() || _M_rep()->_M_is_shared()) > this->reserve(__len); > _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n); > _M_rep()->_M_set_length_and_sharable(__len); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > insert(size_type __pos, const _CharT* __s, size_type __n) > { > ; > _M_check(__pos, "basic_string::insert"); > _M_check_length(size_type(0), __n, "basic_string::insert"); > if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) > return _M_replace_safe(__pos, size_type(0), __s, __n); > else > { > > const size_type __off = __s - _M_data(); > _M_mutate(__pos, 0, __n); > __s = _M_data() + __off; > _CharT* __p = _M_data() + __pos; > if (__s + __n <= __p) > _M_copy(__p, __s, __n); > else if (__s >= __p) > _M_copy(__p, __s + __n, __n); > else > { > const size_type __nleft = __p - __s; > _M_copy(__p, __s, __nleft); > _M_copy(__p + __nleft, __p + __n, __n - __nleft); > } > return *this; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > replace(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) > { > ; > _M_check(__pos, "basic_string::replace"); > __n1 = _M_limit(__pos, __n1); > _M_check_length(__n1, __n2, "basic_string::replace"); > bool __left; > if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) > return _M_replace_safe(__pos, __n1, __s, __n2); > else if ((__left = __s + __n2 <= _M_data() + __pos) > || _M_data() + __pos + __n1 <= __s) > { > > size_type __off = __s - _M_data(); > __left ? __off : (__off += __n2 - __n1); > _M_mutate(__pos, __n1, __n2); > _M_copy(_M_data() + __pos, _M_data() + __off, __n2); > return *this; > } > else > { > > const basic_string __tmp(__s, __n2); > return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2); > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _M_destroy(const _Alloc& __a) throw () > { > const size_type __size = sizeof(_Rep_base) + > (this->_M_capacity + 1) * sizeof(_CharT); > _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > _M_leak_hard() > { > > if (_M_rep() == &_S_empty_rep()) > return; > > if (_M_rep()->_M_is_shared()) > _M_mutate(0, 0, 0); > _M_rep()->_M_set_leaked(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > _M_mutate(size_type __pos, size_type __len1, size_type __len2) > { > const size_type __old_size = this->size(); > const size_type __new_size = __old_size + __len2 - __len1; > const size_type __how_much = __old_size - __pos - __len1; > > if (__new_size > this->capacity() || _M_rep()->_M_is_shared()) > { > > const allocator_type __a = get_allocator(); > _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a); > > if (__pos) > _M_copy(__r->_M_refdata(), _M_data(), __pos); > if (__how_much) > _M_copy(__r->_M_refdata() + __pos + __len2, > _M_data() + __pos + __len1, __how_much); > > _M_rep()->_M_dispose(__a); > _M_data(__r->_M_refdata()); > } > else if (__how_much && __len1 != __len2) > { > > _M_move(_M_data() + __pos + __len2, > _M_data() + __pos + __len1, __how_much); > } > _M_rep()->_M_set_length_and_sharable(__new_size); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > reserve(size_type __res) > { > if (__res != this->capacity() || _M_rep()->_M_is_shared()) > { > > if (__res < this->size()) > __res = this->size(); > const allocator_type __a = get_allocator(); > _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size()); > _M_rep()->_M_dispose(__a); > _M_data(__tmp); > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > swap(basic_string& __s) > { > if (_M_rep()->_M_is_leaked()) > _M_rep()->_M_set_sharable(); > if (__s._M_rep()->_M_is_leaked()) > __s._M_rep()->_M_set_sharable(); > if (this->get_allocator() == __s.get_allocator()) > { > _CharT* __tmp = _M_data(); > _M_data(__s._M_data()); > __s._M_data(__tmp); > } > > else > { > const basic_string __tmp1(_M_ibegin(), _M_iend(), > __s.get_allocator()); > const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(), > this->get_allocator()); > *this = __tmp2; > __s = __tmp1; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::_Rep* > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _S_create(size_type __capacity, size_type __old_capacity, > const _Alloc& __alloc) > { > > > if (__capacity > _S_max_size) > __throw_length_error(("basic_string::_S_create")); ># 552 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_string.tcc" 3 > const size_type __pagesize = 4096; > const size_type __malloc_header_size = 4 * sizeof(void*); > > > > > > > > if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) > __capacity = 2 * __old_capacity; > > > > > size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); > > const size_type __adj_size = __size + __malloc_header_size; > if (__adj_size > __pagesize && __capacity > __old_capacity) > { > const size_type __extra = __pagesize - __adj_size % __pagesize; > __capacity += __extra / sizeof(_CharT); > > if (__capacity > _S_max_size) > __capacity = _S_max_size; > __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); > } > > > > void* __place = _Raw_bytes_alloc(__alloc).allocate(__size); > _Rep *__p = new (__place) _Rep; > __p->_M_capacity = __capacity; > > > > > > > > __p->_M_set_sharable(); > return __p; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > _CharT* > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _M_clone(const _Alloc& __alloc, size_type __res) > { > > const size_type __requested_cap = this->_M_length + __res; > _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity, > __alloc); > if (this->_M_length) > _M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length); > > __r->_M_set_length_and_sharable(this->_M_length); > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > resize(size_type __n, _CharT __c) > { > const size_type __size = this->size(); > _M_check_length(__size, __n, "basic_string::resize"); > if (__size < __n) > this->append(__n - __size, __c); > else if (__n < __size) > this->erase(__n); > > } > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InputIterator> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1, > _InputIterator __k2, __false_type) > { > const basic_string __s(__k1, __k2); > const size_type __n1 = __i2 - __i1; > _M_check_length(__n1, __s.size(), "basic_string::_M_replace_dispatch"); > return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(), > __s.size()); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, > _CharT __c) > { > _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); > _M_mutate(__pos1, __n1, __n2); > if (__n2) > _M_assign(_M_data() + __pos1, __n2, __c); > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s, > size_type __n2) > { > _M_mutate(__pos1, __n1, __n2); > if (__n2) > _M_copy(_M_data() + __pos1, __s, __n2); > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > ; > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > const __size_type __len = _Traits::length(__lhs); > __string_type __str; > __str.reserve(__len + __rhs.size()); > __str.append(__lhs, __len); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > __string_type __str; > const __size_type __len = __rhs.size(); > __str.reserve(__len + 1); > __str.append(__size_type(1), __lhs); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > copy(_CharT* __s, size_type __n, size_type __pos) const > { > _M_check(__pos, "basic_string::copy"); > __n = _M_limit(__pos, __n); > ; > if (__n) > _M_copy(__s, _M_data() + __pos, __n); > > return __n; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > const size_type __size = this->size(); > const _CharT* __data = _M_data(); > > if (__n == 0) > return __pos <= __size ? __pos : npos; > > if (__n <= __size) > { > for (; __pos <= __size - __n; ++__pos) > if (traits_type::eq(__data[__pos], __s[0]) > && traits_type::compare(__data + __pos + 1, > __s + 1, __n - 1) == 0) > return __pos; > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find(_CharT __c, size_type __pos) const > { > size_type __ret = npos; > const size_type __size = this->size(); > if (__pos < __size) > { > const _CharT* __data = _M_data(); > const size_type __n = __size - __pos; > const _CharT* __p = traits_type::find(__data + __pos, __n, __c); > if (__p) > __ret = __p - __data; > } > return __ret; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > rfind(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > const size_type __size = this->size(); > if (__n <= __size) > { > __pos = std::min(size_type(__size - __n), __pos); > const _CharT* __data = _M_data(); > do > { > if (traits_type::compare(__data + __pos, __s, __n) == 0) > return __pos; > } > while (__pos-- > 0); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > rfind(_CharT __c, size_type __pos) const > { > size_type __size = this->size(); > if (__size) > { > if (--__size > __pos) > __size = __pos; > for (++__size; __size-- > 0; ) > if (traits_type::eq(_M_data()[__size], __c)) > return __size; > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_of(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > for (; __n && __pos < this->size(); ++__pos) > { > const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); > if (__p) > return __pos; > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_of(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > size_type __size = this->size(); > if (__size && __n) > { > if (--__size > __pos) > __size = __pos; > do > { > if (traits_type::find(__s, __n, _M_data()[__size])) > return __size; > } > while (__size-- != 0); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > for (; __pos < this->size(); ++__pos) > if (!traits_type::find(__s, __n, _M_data()[__pos])) > return __pos; > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_not_of(_CharT __c, size_type __pos) const > { > for (; __pos < this->size(); ++__pos) > if (!traits_type::eq(_M_data()[__pos], __c)) > return __pos; > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > size_type __size = this->size(); > if (__size) > { > if (--__size > __pos) > __size = __pos; > do > { > if (!traits_type::find(__s, __n, _M_data()[__size])) > return __size; > } > while (__size--); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_not_of(_CharT __c, size_type __pos) const > { > size_type __size = this->size(); > if (__size) > { > if (--__size > __pos) > __size = __pos; > do > { > if (!traits_type::eq(_M_data()[__size], __c)) > return __size; > } > while (__size--); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n, const basic_string& __str) const > { > _M_check(__pos, "basic_string::compare"); > __n = _M_limit(__pos, __n); > const size_type __osize = __str.size(); > const size_type __len = std::min(__n, __osize); > int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); > if (!__r) > __r = _S_compare(__n, __osize); > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) const > { > _M_check(__pos1, "basic_string::compare"); > __str._M_check(__pos2, "basic_string::compare"); > __n1 = _M_limit(__pos1, __n1); > __n2 = __str._M_limit(__pos2, __n2); > const size_type __len = std::min(__n1, __n2); > int __r = traits_type::compare(_M_data() + __pos1, > __str.data() + __pos2, __len); > if (!__r) > __r = _S_compare(__n1, __n2); > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(const _CharT* __s) const > { > ; > const size_type __size = this->size(); > const size_type __osize = traits_type::length(__s); > const size_type __len = std::min(__size, __osize); > int __r = traits_type::compare(_M_data(), __s, __len); > if (!__r) > __r = _S_compare(__size, __osize); > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string <_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n1, const _CharT* __s) const > { > ; > _M_check(__pos, "basic_string::compare"); > __n1 = _M_limit(__pos, __n1); > const size_type __osize = traits_type::length(__s); > const size_type __len = std::min(__n1, __osize); > int __r = traits_type::compare(_M_data() + __pos, __s, __len); > if (!__r) > __r = _S_compare(__n1, __osize); > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string <_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) const > { > ; > _M_check(__pos, "basic_string::compare"); > __n1 = _M_limit(__pos, __n1); > const size_type __len = std::min(__n1, __n2); > int __r = traits_type::compare(_M_data() + __pos, __s, __len); > if (!__r) > __r = _S_compare(__n1, __n2); > return __r; > } > > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_istream<_CharT, _Traits>& > operator>>(basic_istream<_CharT, _Traits>& __in, > basic_string<_CharT, _Traits, _Alloc>& __str) > { > typedef basic_istream<_CharT, _Traits> __istream_type; > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __istream_type::ios_base __ios_base; > typedef typename __istream_type::int_type __int_type; > typedef typename __string_type::size_type __size_type; > typedef ctype<_CharT> __ctype_type; > typedef typename __ctype_type::ctype_base __ctype_base; > > __size_type __extracted = 0; > typename __ios_base::iostate __err = __ios_base::goodbit; > typename __istream_type::sentry __cerb(__in, false); > if (__cerb) > { > try > { > > __str.erase(); > _CharT __buf[128]; > __size_type __len = 0; > const streamsize __w = __in.width(); > const __size_type __n = __w > 0 ? static_cast<__size_type>(__w) > : __str.max_size(); > const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); > const __int_type __eof = _Traits::eof(); > __int_type __c = __in.rdbuf()->sgetc(); > > while (__extracted < __n > && !_Traits::eq_int_type(__c, __eof) > && !__ct.is(__ctype_base::space, > _Traits::to_char_type(__c))) > { > if (__len == sizeof(__buf) / sizeof(_CharT)) > { > __str.append(__buf, sizeof(__buf) / sizeof(_CharT)); > __len = 0; > } > __buf[__len++] = _Traits::to_char_type(__c); > ++__extracted; > __c = __in.rdbuf()->snextc(); > } > __str.append(__buf, __len); > > if (_Traits::eq_int_type(__c, __eof)) > __err |= __ios_base::eofbit; > __in.width(0); > } > catch(__cxxabiv1::__forced_unwind&) > { > __in._M_setstate(__ios_base::badbit); > throw; > } > catch(...) > { > > > > __in._M_setstate(__ios_base::badbit); > } > } > > if (!__extracted) > __err |= __ios_base::failbit; > if (__err) > __in.setstate(__err); > return __in; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_istream<_CharT, _Traits>& > getline(basic_istream<_CharT, _Traits>& __in, > basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim) > { > typedef basic_istream<_CharT, _Traits> __istream_type; > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __istream_type::ios_base __ios_base; > typedef typename __istream_type::int_type __int_type; > typedef typename __string_type::size_type __size_type; > > __size_type __extracted = 0; > const __size_type __n = __str.max_size(); > typename __ios_base::iostate __err = __ios_base::goodbit; > typename __istream_type::sentry __cerb(__in, true); > if (__cerb) > { > try > { > __str.erase(); > const __int_type __idelim = _Traits::to_int_type(__delim); > const __int_type __eof = _Traits::eof(); > __int_type __c = __in.rdbuf()->sgetc(); > > while (__extracted < __n > && !_Traits::eq_int_type(__c, __eof) > && !_Traits::eq_int_type(__c, __idelim)) > { > __str += _Traits::to_char_type(__c); > ++__extracted; > __c = __in.rdbuf()->snextc(); > } > > if (_Traits::eq_int_type(__c, __eof)) > __err |= __ios_base::eofbit; > else if (_Traits::eq_int_type(__c, __idelim)) > { > ++__extracted; > __in.rdbuf()->sbumpc(); > } > else > __err |= __ios_base::failbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > __in._M_setstate(__ios_base::badbit); > throw; > } > catch(...) > { > > > > __in._M_setstate(__ios_base::badbit); > } > } > if (!__extracted) > __err |= __ios_base::failbit; > if (__err) > __in.setstate(__err); > return __in; > } > > > > > > extern template class basic_string<char>; > extern template > basic_istream<char>& > operator>>(basic_istream<char>&, string&); > extern template > basic_ostream<char>& > operator<<(basic_ostream<char>&, const string&); > extern template > basic_istream<char>& > getline(basic_istream<char>&, string&, char); > extern template > basic_istream<char>& > getline(basic_istream<char>&, string&); > > > extern template class basic_string<wchar_t>; > extern template > basic_istream<wchar_t>& > operator>>(basic_istream<wchar_t>&, wstring&); > extern template > basic_ostream<wchar_t>& > operator<<(basic_ostream<wchar_t>&, const wstring&); > extern template > basic_istream<wchar_t>& > getline(basic_istream<wchar_t>&, wstring&, wchar_t); > extern template > basic_istream<wchar_t>& > getline(basic_istream<wchar_t>&, wstring&); > > > >} ># 62 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/string" 2 3 ># 48 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 2 3 > > >namespace std __attribute__ ((__visibility__ ("default"))) { ># 66 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > class locale > { > public: > > > typedef int category; > > > class facet; > class id; > class _Impl; > > friend class facet; > friend class _Impl; > > template<typename _Facet> > friend bool > has_facet(const locale&) throw(); > > template<typename _Facet> > friend const _Facet& > use_facet(const locale&); > > template<typename _Cache> > friend struct __use_cache; ># 102 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > static const category none = 0; > static const category ctype = 1L << 0; > static const category numeric = 1L << 1; > static const category collate = 1L << 2; > static const category time = 1L << 3; > static const category monetary = 1L << 4; > static const category messages = 1L << 5; > static const category all = (ctype | numeric | collate | > time | monetary | messages); ># 121 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > locale() throw(); ># 130 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > locale(const locale& __other) throw(); ># 140 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > explicit > locale(const char* __s); ># 155 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > locale(const locale& __base, const char* __s, category __cat); ># 168 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > locale(const locale& __base, const locale& __add, category __cat); ># 180 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > template<typename _Facet> > locale(const locale& __other, _Facet* __f); > > > ~locale() throw(); ># 194 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > const locale& > operator=(const locale& __other) throw(); ># 209 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > template<typename _Facet> > locale > combine(const locale& __other) const; > > > > > > > string > name() const; ># 228 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > bool > operator==(const locale& __other) const throw (); > > > > > > > > bool > operator!=(const locale& __other) const throw () > { return !(this->operator==(__other)); } ># 256 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > template<typename _Char, typename _Traits, typename _Alloc> > bool > operator()(const basic_string<_Char, _Traits, _Alloc>& __s1, > const basic_string<_Char, _Traits, _Alloc>& __s2) const; ># 272 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > static locale > global(const locale&); > > > > > static const locale& > classic(); > > private: > > _Impl* _M_impl; > > > static _Impl* _S_classic; > > > static _Impl* _S_global; > > > > > > static const char* const* const _S_categories; ># 307 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > enum { _S_categories_size = 6 + 6 }; > > > static __gthread_once_t _S_once; > > > explicit > locale(_Impl*) throw(); > > static void > _S_initialize(); > > static void > _S_initialize_once(); > > static category > _S_normalize_category(category); > > void > _M_coalesce(const locale& __base, const locale& __add, category __cat); > }; ># 340 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > class locale::facet > { > private: > friend class locale; > friend class locale::_Impl; > > mutable _Atomic_word _M_refcount; > > > static __c_locale _S_c_locale; > > > static const char _S_c_name[2]; > > > static __gthread_once_t _S_once; > > > static void > _S_initialize_once(); > > protected: ># 371 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > explicit > facet(size_t __refs = 0) throw() : _M_refcount(__refs ? 1 : 0) > { } > > > virtual > ~facet(); > > static void > _S_create_c_locale(__c_locale& __cloc, const char* __s, > __c_locale __old = 0); > > static __c_locale > _S_clone_c_locale(__c_locale& __cloc); > > static void > _S_destroy_c_locale(__c_locale& __cloc); > > > > static __c_locale > _S_get_c_locale(); > > static const char* > _S_get_c_name(); > > private: > void > _M_add_reference() const throw() > { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } > > void > _M_remove_reference() const throw() > { > if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) > { > try > { delete this; } > catch(...) > { } > } > } > > facet(const facet&); > > facet& > operator=(const facet&); > }; ># 431 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > class locale::id > { > private: > friend class locale; > friend class locale::_Impl; > > template<typename _Facet> > friend const _Facet& > use_facet(const locale&); > > template<typename _Facet> > friend bool > has_facet(const locale&) throw (); > > > > > mutable size_t _M_index; > > > static _Atomic_word _S_refcount; > > void > operator=(const id&); > > id(const id&); > > public: > > > > id() { } > > size_t > _M_id() const; > }; > > > > class locale::_Impl > { > public: > > friend class locale; > friend class locale::facet; > > template<typename _Facet> > friend bool > has_facet(const locale&) throw(); > > template<typename _Facet> > friend const _Facet& > use_facet(const locale&); > > template<typename _Cache> > friend struct __use_cache; > > private: > > _Atomic_word _M_refcount; > const facet** _M_facets; > size_t _M_facets_size; > const facet** _M_caches; > char** _M_names; > static const locale::id* const _S_id_ctype[]; > static const locale::id* const _S_id_numeric[]; > static const locale::id* const _S_id_collate[]; > static const locale::id* const _S_id_time[]; > static const locale::id* const _S_id_monetary[]; > static const locale::id* const _S_id_messages[]; > static const locale::id* const* const _S_facet_categories[]; > > void > _M_add_reference() throw() > { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } > > void > _M_remove_reference() throw() > { > if (__gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1) == 1) > { > try > { delete this; } > catch(...) > { } > } > } > > _Impl(const _Impl&, size_t); > _Impl(const char*, size_t); > _Impl(size_t) throw(); > > ~_Impl() throw(); > > _Impl(const _Impl&); > > void > operator=(const _Impl&); > > bool > _M_check_same_name() > { > bool __ret = true; > if (_M_names[1]) > > for (size_t __i = 0; __ret && __i < _S_categories_size - 1; ++__i) > __ret = __builtin_strcmp(_M_names[__i], _M_names[__i + 1]) == 0; > return __ret; > } > > void > _M_replace_categories(const _Impl*, category); > > void > _M_replace_category(const _Impl*, const locale::id* const*); > > void > _M_replace_facet(const _Impl*, const locale::id*); > > void > _M_install_facet(const locale::id*, const facet*); > > template<typename _Facet> > void > _M_init_facet(_Facet* __facet) > { _M_install_facet(&_Facet::id, __facet); } > > void > _M_install_cache(const facet*, size_t); > }; ># 574 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > template<typename _Facet> > bool > has_facet(const locale& __loc) throw(); ># 591 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > template<typename _Facet> > const _Facet& > use_facet(const locale& __loc); ># 608 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > template<typename _CharT> > class collate : public locale::facet > { > public: > > > > typedef _CharT char_type; > typedef basic_string<_CharT> string_type; > > > protected: > > > __c_locale _M_c_locale_collate; > > public: > > static locale::id id; ># 635 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > explicit > collate(size_t __refs = 0) > : facet(__refs), _M_c_locale_collate(_S_get_c_locale()) > { } ># 649 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > explicit > collate(__c_locale __cloc, size_t __refs = 0) > : facet(__refs), _M_c_locale_collate(_S_clone_c_locale(__cloc)) > { } ># 666 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > int > compare(const _CharT* __lo1, const _CharT* __hi1, > const _CharT* __lo2, const _CharT* __hi2) const > { return this->do_compare(__lo1, __hi1, __lo2, __hi2); } ># 685 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > string_type > transform(const _CharT* __lo, const _CharT* __hi) const > { return this->do_transform(__lo, __hi); } ># 699 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > long > hash(const _CharT* __lo, const _CharT* __hi) const > { return this->do_hash(__lo, __hi); } > > > int > _M_compare(const _CharT*, const _CharT*) const; > > size_t > _M_transform(_CharT*, const _CharT*, size_t) const; > > protected: > > virtual > ~collate() > { _S_destroy_c_locale(_M_c_locale_collate); } ># 728 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > virtual int > do_compare(const _CharT* __lo1, const _CharT* __hi1, > const _CharT* __lo2, const _CharT* __hi2) const; ># 744 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > virtual string_type > do_transform(const _CharT* __lo, const _CharT* __hi) const; ># 757 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 3 > virtual long > do_hash(const _CharT* __lo, const _CharT* __hi) const; > }; > > template<typename _CharT> > locale::id collate<_CharT>::id; > > > template<> > int > collate<char>::_M_compare(const char*, const char*) const; > > template<> > size_t > collate<char>::_M_transform(char*, const char*, size_t) const; > > > template<> > int > collate<wchar_t>::_M_compare(const wchar_t*, const wchar_t*) const; > > template<> > size_t > collate<wchar_t>::_M_transform(wchar_t*, const wchar_t*, size_t) const; > > > > template<typename _CharT> > class collate_byname : public collate<_CharT> > { > public: > > > typedef _CharT char_type; > typedef basic_string<_CharT> string_type; > > > explicit > collate_byname(const char* __s, size_t __refs = 0) > : collate<_CharT>(__refs) > { > if (__builtin_strcmp(__s, "C") != 0 > && __builtin_strcmp(__s, "POSIX") != 0) > { > this->_S_destroy_c_locale(this->_M_c_locale_collate); > this->_S_create_c_locale(this->_M_c_locale_collate, __s); > } > } > > protected: > virtual > ~collate_byname() { } > }; > >} > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.tcc" 1 3 ># 42 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.tcc" 3 > ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.tcc" 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _Facet> > locale:: > locale(const locale& __other, _Facet* __f) > { > _M_impl = new _Impl(*__other._M_impl, 1); > > try > { _M_impl->_M_install_facet(&_Facet::id, __f); } > catch(...) > { > _M_impl->_M_remove_reference(); > throw; > } > delete [] _M_impl->_M_names[0]; > _M_impl->_M_names[0] = 0; > } > > template<typename _Facet> > locale > locale:: > combine(const locale& __other) const > { > _Impl* __tmp = new _Impl(*_M_impl, 1); > try > { > __tmp->_M_replace_facet(__other._M_impl, &_Facet::id); > } > catch(...) > { > __tmp->_M_remove_reference(); > throw; > } > return locale(__tmp); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > bool > locale:: > operator()(const basic_string<_CharT, _Traits, _Alloc>& __s1, > const basic_string<_CharT, _Traits, _Alloc>& __s2) const > { > typedef std::collate<_CharT> __collate_type; > const __collate_type& __collate = use_facet<__collate_type>(*this); > return (__collate.compare(__s1.data(), __s1.data() + __s1.length(), > __s2.data(), __s2.data() + __s2.length()) < 0); > } > > > template<typename _Facet> > bool > has_facet(const locale& __loc) throw() > { > const size_t __i = _Facet::id._M_id(); > const locale::facet** __facets = __loc._M_impl->_M_facets; > return (__i < __loc._M_impl->_M_facets_size > > && dynamic_cast<const _Facet*>(__facets[__i])); > > > > } > > template<typename _Facet> > const _Facet& > use_facet(const locale& __loc) > { > const size_t __i = _Facet::id._M_id(); > const locale::facet** __facets = __loc._M_impl->_M_facets; > if (__i >= __loc._M_impl->_M_facets_size || !__facets[__i]) > __throw_bad_cast(); > > return dynamic_cast<const _Facet&>(*__facets[__i]); > > > > } > > > > template<typename _CharT> > int > collate<_CharT>::_M_compare(const _CharT*, const _CharT*) const > { return 0; } > > > template<typename _CharT> > size_t > collate<_CharT>::_M_transform(_CharT*, const _CharT*, size_t) const > { return 0; } > > template<typename _CharT> > int > collate<_CharT>:: > do_compare(const _CharT* __lo1, const _CharT* __hi1, > const _CharT* __lo2, const _CharT* __hi2) const > { > > > const string_type __one(__lo1, __hi1); > const string_type __two(__lo2, __hi2); > > const _CharT* __p = __one.c_str(); > const _CharT* __pend = __one.data() + __one.length(); > const _CharT* __q = __two.c_str(); > const _CharT* __qend = __two.data() + __two.length(); > > > > > for (;;) > { > const int __res = _M_compare(__p, __q); > if (__res) > return __res; > > __p += char_traits<_CharT>::length(__p); > __q += char_traits<_CharT>::length(__q); > if (__p == __pend && __q == __qend) > return 0; > else if (__p == __pend) > return -1; > else if (__q == __qend) > return 1; > > __p++; > __q++; > } > } > > template<typename _CharT> > typename collate<_CharT>::string_type > collate<_CharT>:: > do_transform(const _CharT* __lo, const _CharT* __hi) const > { > string_type __ret; > > > const string_type __str(__lo, __hi); > > const _CharT* __p = __str.c_str(); > const _CharT* __pend = __str.data() + __str.length(); > > size_t __len = (__hi - __lo) * 2; > > _CharT* __c = new _CharT[__len]; > > try > { > > > > for (;;) > { > > size_t __res = _M_transform(__c, __p, __len); > > > if (__res >= __len) > { > __len = __res + 1; > delete [] __c, __c = 0; > __c = new _CharT[__len]; > __res = _M_transform(__c, __p, __len); > } > > __ret.append(__c, __res); > __p += char_traits<_CharT>::length(__p); > if (__p == __pend) > break; > > __p++; > __ret.push_back(_CharT()); > } > } > catch(...) > { > delete [] __c; > throw; > } > > delete [] __c; > > return __ret; > } > > template<typename _CharT> > long > collate<_CharT>:: > do_hash(const _CharT* __lo, const _CharT* __hi) const > { > unsigned long __val = 0; > for (; __lo < __hi; ++__lo) > __val = > *__lo + ((__val << 7) > | (__val >> (__gnu_cxx::__numeric_traits<unsigned long>:: > __digits - 7))); > return static_cast<long>(__val); > } > > > > > > extern template class collate<char>; > extern template class collate_byname<char>; > > extern template > const collate<char>& > use_facet<collate<char> >(const locale&); > > extern template > bool > has_facet<collate<char> >(const locale&); > > > extern template class collate<wchar_t>; > extern template class collate_byname<wchar_t>; > > extern template > const collate<wchar_t>& > use_facet<collate<wchar_t> >(const locale&); > > extern template > bool > has_facet<collate<wchar_t> >(const locale&); > > > >} ># 815 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_classes.h" 2 3 ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 1 3 ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 3 > ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 1 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 3 > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstddef" 2 3 ># 50 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cstdio" 2 3 ># 50 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 2 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { > > > > > > enum _Ios_Fmtflags > { > _S_boolalpha = 1L << 0, > _S_dec = 1L << 1, > _S_fixed = 1L << 2, > _S_hex = 1L << 3, > _S_internal = 1L << 4, > _S_left = 1L << 5, > _S_oct = 1L << 6, > _S_right = 1L << 7, > _S_scientific = 1L << 8, > _S_showbase = 1L << 9, > _S_showpoint = 1L << 10, > _S_showpos = 1L << 11, > _S_skipws = 1L << 12, > _S_unitbuf = 1L << 13, > _S_uppercase = 1L << 14, > _S_adjustfield = _S_left | _S_right | _S_internal, > _S_basefield = _S_dec | _S_oct | _S_hex, > _S_floatfield = _S_scientific | _S_fixed, > _S_ios_fmtflags_end = 1L << 16 > }; > > inline _Ios_Fmtflags > operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b) > { return _Ios_Fmtflags(static_cast<int>(__a) & static_cast<int>(__b)); } > > inline _Ios_Fmtflags > operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b) > { return _Ios_Fmtflags(static_cast<int>(__a) | static_cast<int>(__b)); } > > inline _Ios_Fmtflags > operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b) > { return _Ios_Fmtflags(static_cast<int>(__a) ^ static_cast<int>(__b)); } > > inline _Ios_Fmtflags& > operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) > { return __a = __a | __b; } > > inline _Ios_Fmtflags& > operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) > { return __a = __a & __b; } > > inline _Ios_Fmtflags& > operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b) > { return __a = __a ^ __b; } > > inline _Ios_Fmtflags > operator~(_Ios_Fmtflags __a) > { return _Ios_Fmtflags(~static_cast<int>(__a)); } > > > enum _Ios_Openmode > { > _S_app = 1L << 0, > _S_ate = 1L << 1, > _S_bin = 1L << 2, > _S_in = 1L << 3, > _S_out = 1L << 4, > _S_trunc = 1L << 5, > _S_ios_openmode_end = 1L << 16 > }; > > inline _Ios_Openmode > operator&(_Ios_Openmode __a, _Ios_Openmode __b) > { return _Ios_Openmode(static_cast<int>(__a) & static_cast<int>(__b)); } > > inline _Ios_Openmode > operator|(_Ios_Openmode __a, _Ios_Openmode __b) > { return _Ios_Openmode(static_cast<int>(__a) | static_cast<int>(__b)); } > > inline _Ios_Openmode > operator^(_Ios_Openmode __a, _Ios_Openmode __b) > { return _Ios_Openmode(static_cast<int>(__a) ^ static_cast<int>(__b)); } > > inline _Ios_Openmode& > operator|=(_Ios_Openmode& __a, _Ios_Openmode __b) > { return __a = __a | __b; } > > inline _Ios_Openmode& > operator&=(_Ios_Openmode& __a, _Ios_Openmode __b) > { return __a = __a & __b; } > > inline _Ios_Openmode& > operator^=(_Ios_Openmode& __a, _Ios_Openmode __b) > { return __a = __a ^ __b; } > > inline _Ios_Openmode > operator~(_Ios_Openmode __a) > { return _Ios_Openmode(~static_cast<int>(__a)); } > > > enum _Ios_Iostate > { > _S_goodbit = 0, > _S_badbit = 1L << 0, > _S_eofbit = 1L << 1, > _S_failbit = 1L << 2, > _S_ios_iostate_end = 1L << 16 > }; > > inline _Ios_Iostate > operator&(_Ios_Iostate __a, _Ios_Iostate __b) > { return _Ios_Iostate(static_cast<int>(__a) & static_cast<int>(__b)); } > > inline _Ios_Iostate > operator|(_Ios_Iostate __a, _Ios_Iostate __b) > { return _Ios_Iostate(static_cast<int>(__a) | static_cast<int>(__b)); } > > inline _Ios_Iostate > operator^(_Ios_Iostate __a, _Ios_Iostate __b) > { return _Ios_Iostate(static_cast<int>(__a) ^ static_cast<int>(__b)); } > > inline _Ios_Iostate& > operator|=(_Ios_Iostate& __a, _Ios_Iostate __b) > { return __a = __a | __b; } > > inline _Ios_Iostate& > operator&=(_Ios_Iostate& __a, _Ios_Iostate __b) > { return __a = __a & __b; } > > inline _Ios_Iostate& > operator^=(_Ios_Iostate& __a, _Ios_Iostate __b) > { return __a = __a ^ __b; } > > inline _Ios_Iostate > operator~(_Ios_Iostate __a) > { return _Ios_Iostate(~static_cast<int>(__a)); } > > enum _Ios_Seekdir > { > _S_beg = 0, > _S_cur = 1, > _S_end = 2, > _S_ios_seekdir_end = 1L << 16 > }; ># 203 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > class ios_base > { > public: > > > > class failure : public exception > { > public: > > > explicit > failure(const string& __str) throw(); > > > > virtual > ~failure() throw(); > > virtual const char* > what() const throw(); > > private: > string _M_msg; > }; ># 255 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > typedef _Ios_Fmtflags fmtflags; > > > static const fmtflags boolalpha = _S_boolalpha; > > > static const fmtflags dec = _S_dec; > > > static const fmtflags fixed = _S_fixed; > > > static const fmtflags hex = _S_hex; > > > > > static const fmtflags internal = _S_internal; > > > > static const fmtflags left = _S_left; > > > static const fmtflags oct = _S_oct; > > > > static const fmtflags right = _S_right; > > > static const fmtflags scientific = _S_scientific; > > > > static const fmtflags showbase = _S_showbase; > > > > static const fmtflags showpoint = _S_showpoint; > > > static const fmtflags showpos = _S_showpos; > > > static const fmtflags skipws = _S_skipws; > > > static const fmtflags unitbuf = _S_unitbuf; > > > > static const fmtflags uppercase = _S_uppercase; > > > static const fmtflags adjustfield = _S_adjustfield; > > > static const fmtflags basefield = _S_basefield; > > > static const fmtflags floatfield = _S_floatfield; ># 330 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > typedef _Ios_Iostate iostate; > > > > static const iostate badbit = _S_badbit; > > > static const iostate eofbit = _S_eofbit; > > > > > static const iostate failbit = _S_failbit; > > > static const iostate goodbit = _S_goodbit; ># 361 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > typedef _Ios_Openmode openmode; > > > static const openmode app = _S_app; > > > static const openmode ate = _S_ate; > > > > > > static const openmode binary = _S_bin; > > > static const openmode in = _S_in; > > > static const openmode out = _S_out; > > > static const openmode trunc = _S_trunc; ># 394 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > typedef _Ios_Seekdir seekdir; > > > static const seekdir beg = _S_beg; > > > static const seekdir cur = _S_cur; > > > static const seekdir end = _S_end; > > > typedef int io_state; > typedef int open_mode; > typedef int seek_dir; > > typedef std::streampos streampos; > typedef std::streamoff streamoff; ># 420 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > enum event > { > erase_event, > imbue_event, > copyfmt_event > }; ># 437 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > typedef void (*event_callback) (event, ios_base&, int); ># 449 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > void > register_callback(event_callback __fn, int __index); > > protected: > > > > > streamsize _M_precision; > streamsize _M_width; > fmtflags _M_flags; > iostate _M_exception; > iostate _M_streambuf_state; > > > > > struct _Callback_list > { > > _Callback_list* _M_next; > ios_base::event_callback _M_fn; > int _M_index; > _Atomic_word _M_refcount; > > _Callback_list(ios_base::event_callback __fn, int __index, > _Callback_list* __cb) > : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { } > > void > _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); } > > > int > _M_remove_reference() > { return __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1); } > }; > > _Callback_list* _M_callbacks; > > void > _M_call_callbacks(event __ev) throw(); > > void > _M_dispose_callbacks(void); > > > struct _Words > { > void* _M_pword; > long _M_iword; > _Words() : _M_pword(0), _M_iword(0) { } > }; > > > _Words _M_word_zero; > > > > enum { _S_local_word_size = 8 }; > _Words _M_local_word[_S_local_word_size]; > > > int _M_word_size; > _Words* _M_word; > > _Words& > _M_grow_words(int __index, bool __iword); > > > locale _M_ios_locale; > > void > _M_init(); > > public: > > > > > > class Init > { > friend class ios_base; > public: > Init(); > ~Init(); > > private: > static _Atomic_word _S_refcount; > static bool _S_synced_with_stdio; > }; > > > > > > > fmtflags > flags() const > { return _M_flags; } ># 558 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > fmtflags > flags(fmtflags __fmtfl) > { > fmtflags __old = _M_flags; > _M_flags = __fmtfl; > return __old; > } ># 574 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > fmtflags > setf(fmtflags __fmtfl) > { > fmtflags __old = _M_flags; > _M_flags |= __fmtfl; > return __old; > } ># 591 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > fmtflags > setf(fmtflags __fmtfl, fmtflags __mask) > { > fmtflags __old = _M_flags; > _M_flags &= ~__mask; > _M_flags |= (__fmtfl & __mask); > return __old; > } > > > > > > > > void > unsetf(fmtflags __mask) > { _M_flags &= ~__mask; } ># 617 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > streamsize > precision() const > { return _M_precision; } > > > > > > > streamsize > precision(streamsize __prec) > { > streamsize __old = _M_precision; > _M_precision = __prec; > return __old; > } > > > > > > > > streamsize > width() const > { return _M_width; } > > > > > > > streamsize > width(streamsize __wide) > { > streamsize __old = _M_width; > _M_width = __wide; > return __old; > } ># 668 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > static bool > sync_with_stdio(bool __sync = true); ># 680 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > locale > imbue(const locale& __loc); ># 691 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > locale > getloc() const > { return _M_ios_locale; } ># 702 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > const locale& > _M_getloc() const > { return _M_ios_locale; } ># 721 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > static int > xalloc() throw(); ># 737 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > long& > iword(int __ix) > { > _Words& __word = (__ix < _M_word_size) > ? _M_word[__ix] : _M_grow_words(__ix, true); > return __word._M_iword; > } ># 758 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > void*& > pword(int __ix) > { > _Words& __word = (__ix < _M_word_size) > ? _M_word[__ix] : _M_grow_words(__ix, false); > return __word._M_pword; > } ># 775 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ios_base.h" 3 > virtual ~ios_base(); > > protected: > ios_base(); > > > > private: > ios_base(const ios_base&); > > ios_base& > operator=(const ios_base&); > }; > > > > inline ios_base& > boolalpha(ios_base& __base) > { > __base.setf(ios_base::boolalpha); > return __base; > } > > > inline ios_base& > noboolalpha(ios_base& __base) > { > __base.unsetf(ios_base::boolalpha); > return __base; > } > > > inline ios_base& > showbase(ios_base& __base) > { > __base.setf(ios_base::showbase); > return __base; > } > > > inline ios_base& > noshowbase(ios_base& __base) > { > __base.unsetf(ios_base::showbase); > return __base; > } > > > inline ios_base& > showpoint(ios_base& __base) > { > __base.setf(ios_base::showpoint); > return __base; > } > > > inline ios_base& > noshowpoint(ios_base& __base) > { > __base.unsetf(ios_base::showpoint); > return __base; > } > > > inline ios_base& > showpos(ios_base& __base) > { > __base.setf(ios_base::showpos); > return __base; > } > > > inline ios_base& > noshowpos(ios_base& __base) > { > __base.unsetf(ios_base::showpos); > return __base; > } > > > inline ios_base& > skipws(ios_base& __base) > { > __base.setf(ios_base::skipws); > return __base; > } > > > inline ios_base& > noskipws(ios_base& __base) > { > __base.unsetf(ios_base::skipws); > return __base; > } > > > inline ios_base& > uppercase(ios_base& __base) > { > __base.setf(ios_base::uppercase); > return __base; > } > > > inline ios_base& > nouppercase(ios_base& __base) > { > __base.unsetf(ios_base::uppercase); > return __base; > } > > > inline ios_base& > unitbuf(ios_base& __base) > { > __base.setf(ios_base::unitbuf); > return __base; > } > > > inline ios_base& > nounitbuf(ios_base& __base) > { > __base.unsetf(ios_base::unitbuf); > return __base; > } > > > > inline ios_base& > internal(ios_base& __base) > { > __base.setf(ios_base::internal, ios_base::adjustfield); > return __base; > } > > > inline ios_base& > left(ios_base& __base) > { > __base.setf(ios_base::left, ios_base::adjustfield); > return __base; > } > > > inline ios_base& > right(ios_base& __base) > { > __base.setf(ios_base::right, ios_base::adjustfield); > return __base; > } > > > > inline ios_base& > dec(ios_base& __base) > { > __base.setf(ios_base::dec, ios_base::basefield); > return __base; > } > > > inline ios_base& > hex(ios_base& __base) > { > __base.setf(ios_base::hex, ios_base::basefield); > return __base; > } > > > inline ios_base& > oct(ios_base& __base) > { > __base.setf(ios_base::oct, ios_base::basefield); > return __base; > } > > > > inline ios_base& > fixed(ios_base& __base) > { > __base.setf(ios_base::fixed, ios_base::floatfield); > return __base; > } > > > inline ios_base& > scientific(ios_base& __base) > { > __base.setf(ios_base::scientific, ios_base::floatfield); > return __base; > } > >} ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ios" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 1 3 ># 42 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 ># 51 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _CharT, typename _Traits> > streamsize > __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*, > basic_streambuf<_CharT, _Traits>*, bool&); ># 118 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > template<typename _CharT, typename _Traits> > class basic_streambuf > { > public: > > > > > > > typedef _CharT char_type; > typedef _Traits traits_type; > typedef typename traits_type::int_type int_type; > typedef typename traits_type::pos_type pos_type; > typedef typename traits_type::off_type off_type; > > > > > typedef basic_streambuf<char_type, traits_type> __streambuf_type; > > > friend class basic_ios<char_type, traits_type>; > friend class basic_istream<char_type, traits_type>; > friend class basic_ostream<char_type, traits_type>; > friend class istreambuf_iterator<char_type, traits_type>; > friend class ostreambuf_iterator<char_type, traits_type>; > > friend streamsize > __copy_streambufs_eof<>(__streambuf_type*, __streambuf_type*, bool&); > > template<bool _IsMove, typename _CharT2> > friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, > _CharT2*>::__type > __copy_move_a2(istreambuf_iterator<_CharT2>, > istreambuf_iterator<_CharT2>, _CharT2*); > > template<typename _CharT2> > friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, > istreambuf_iterator<_CharT2> >::__type > find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, > const _CharT2&); > > template<typename _CharT2, typename _Traits2> > friend basic_istream<_CharT2, _Traits2>& > operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); > > template<typename _CharT2, typename _Traits2, typename _Alloc> > friend basic_istream<_CharT2, _Traits2>& > operator>>(basic_istream<_CharT2, _Traits2>&, > basic_string<_CharT2, _Traits2, _Alloc>&); > > template<typename _CharT2, typename _Traits2, typename _Alloc> > friend basic_istream<_CharT2, _Traits2>& > getline(basic_istream<_CharT2, _Traits2>&, > basic_string<_CharT2, _Traits2, _Alloc>&, _CharT2); > > protected: ># 184 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > char_type* _M_in_beg; > char_type* _M_in_cur; > char_type* _M_in_end; > char_type* _M_out_beg; > char_type* _M_out_cur; > char_type* _M_out_end; > > > locale _M_buf_locale; > > public: > > virtual > ~basic_streambuf() > { } ># 208 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > locale > pubimbue(const locale &__loc) > { > locale __tmp(this->getloc()); > this->imbue(__loc); > _M_buf_locale = __loc; > return __tmp; > } ># 225 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > locale > getloc() const > { return _M_buf_locale; } ># 238 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > __streambuf_type* > pubsetbuf(char_type* __s, streamsize __n) > { return this->setbuf(__s, __n); } > > pos_type > pubseekoff(off_type __off, ios_base::seekdir __way, > ios_base::openmode __mode = ios_base::in | ios_base::out) > { return this->seekoff(__off, __way, __mode); } > > pos_type > pubseekpos(pos_type __sp, > ios_base::openmode __mode = ios_base::in | ios_base::out) > { return this->seekpos(__sp, __mode); } > > int > pubsync() { return this->sync(); } ># 265 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > streamsize > in_avail() > { > const streamsize __ret = this->egptr() - this->gptr(); > return __ret ? __ret : this->showmanyc(); > } ># 279 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > int_type > snextc() > { > int_type __ret = traits_type::eof(); > if (__builtin_expect(!traits_type::eq_int_type(this->sbumpc(), > __ret), true)) > __ret = this->sgetc(); > return __ret; > } ># 297 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > int_type > sbumpc() > { > int_type __ret; > if (__builtin_expect(this->gptr() < this->egptr(), true)) > { > __ret = traits_type::to_int_type(*this->gptr()); > this->gbump(1); > } > else > __ret = this->uflow(); > return __ret; > } ># 319 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > int_type > sgetc() > { > int_type __ret; > if (__builtin_expect(this->gptr() < this->egptr(), true)) > __ret = traits_type::to_int_type(*this->gptr()); > else > __ret = this->underflow(); > return __ret; > } ># 338 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > streamsize > sgetn(char_type* __s, streamsize __n) > { return this->xsgetn(__s, __n); } ># 352 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > int_type > sputbackc(char_type __c) > { > int_type __ret; > const bool __testpos = this->eback() < this->gptr(); > if (__builtin_expect(!__testpos || > !traits_type::eq(__c, this->gptr()[-1]), false)) > __ret = this->pbackfail(traits_type::to_int_type(__c)); > else > { > this->gbump(-1); > __ret = traits_type::to_int_type(*this->gptr()); > } > return __ret; > } ># 377 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > int_type > sungetc() > { > int_type __ret; > if (__builtin_expect(this->eback() < this->gptr(), true)) > { > this->gbump(-1); > __ret = traits_type::to_int_type(*this->gptr()); > } > else > __ret = this->pbackfail(); > return __ret; > } ># 404 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > int_type > sputc(char_type __c) > { > int_type __ret; > if (__builtin_expect(this->pptr() < this->epptr(), true)) > { > *this->pptr() = __c; > this->pbump(1); > __ret = traits_type::to_int_type(__c); > } > else > __ret = this->overflow(traits_type::to_int_type(__c)); > return __ret; > } ># 430 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > streamsize > sputn(const char_type* __s, streamsize __n) > { return this->xsputn(__s, __n); } > > protected: ># 444 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > basic_streambuf() > : _M_in_beg(0), _M_in_cur(0), _M_in_end(0), > _M_out_beg(0), _M_out_cur(0), _M_out_end(0), > _M_buf_locale(locale()) > { } ># 462 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > char_type* > eback() const { return _M_in_beg; } > > char_type* > gptr() const { return _M_in_cur; } > > char_type* > egptr() const { return _M_in_end; } ># 478 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > void > gbump(int __n) { _M_in_cur += __n; } ># 489 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > void > setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) > { > _M_in_beg = __gbeg; > _M_in_cur = __gnext; > _M_in_end = __gend; > } ># 509 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > char_type* > pbase() const { return _M_out_beg; } > > char_type* > pptr() const { return _M_out_cur; } > > char_type* > epptr() const { return _M_out_end; } ># 525 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > void > pbump(int __n) { _M_out_cur += __n; } ># 535 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > void > setp(char_type* __pbeg, char_type* __pend) > { > _M_out_beg = _M_out_cur = __pbeg; > _M_out_end = __pend; > } ># 556 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual void > imbue(const locale&) > { } ># 571 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual basic_streambuf<char_type,_Traits>* > setbuf(char_type*, streamsize) > { return this; } ># 582 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual pos_type > seekoff(off_type, ios_base::seekdir, > ios_base::openmode = ios_base::in | ios_base::out) > { return pos_type(off_type(-1)); } ># 594 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual pos_type > seekpos(pos_type, > ios_base::openmode = ios_base::in | ios_base::out) > { return pos_type(off_type(-1)); } ># 607 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual int > sync() { return 0; } ># 629 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual streamsize > showmanyc() { return 0; } ># 645 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual streamsize > xsgetn(char_type* __s, streamsize __n); ># 667 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual int_type > underflow() > { return traits_type::eof(); } ># 680 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual int_type > uflow() > { > int_type __ret = traits_type::eof(); > const bool __testeof = traits_type::eq_int_type(this->underflow(), > __ret); > if (!__testeof) > { > __ret = traits_type::to_int_type(*this->gptr()); > this->gbump(1); > } > return __ret; > } ># 704 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual int_type > pbackfail(int_type = traits_type::eof()) > { return traits_type::eof(); } ># 722 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual streamsize > xsputn(const char_type* __s, streamsize __n); ># 747 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > virtual int_type > overflow(int_type = traits_type::eof()) > { return traits_type::eof(); } > > > > public: ># 762 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 3 > void > stossc() > { > if (this->gptr() < this->egptr()) > this->gbump(1); > else > this->uflow(); > } > > > private: > > > basic_streambuf(const __streambuf_type& __sb) > : _M_in_beg(__sb._M_in_beg), _M_in_cur(__sb._M_in_cur), > _M_in_end(__sb._M_in_end), _M_out_beg(__sb._M_out_beg), > _M_out_cur(__sb._M_out_cur), _M_out_end(__sb._M_out_cur), > _M_buf_locale(__sb._M_buf_locale) > { } > > __streambuf_type& > operator=(const __streambuf_type&) { return *this; }; > }; > > > template<> > streamsize > __copy_streambufs_eof(basic_streambuf<char>* __sbin, > basic_streambuf<char>* __sbout, bool& __ineof); > > template<> > streamsize > __copy_streambufs_eof(basic_streambuf<wchar_t>* __sbin, > basic_streambuf<wchar_t>* __sbout, bool& __ineof); > > >} > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/streambuf.tcc" 1 3 ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/streambuf.tcc" 3 > ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/streambuf.tcc" 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _CharT, typename _Traits> > streamsize > basic_streambuf<_CharT, _Traits>:: > xsgetn(char_type* __s, streamsize __n) > { > streamsize __ret = 0; > while (__ret < __n) > { > const streamsize __buf_len = this->egptr() - this->gptr(); > if (__buf_len) > { > const streamsize __remaining = __n - __ret; > const streamsize __len = std::min(__buf_len, __remaining); > traits_type::copy(__s, this->gptr(), __len); > __ret += __len; > __s += __len; > this->gbump(__len); > } > > if (__ret < __n) > { > const int_type __c = this->uflow(); > if (!traits_type::eq_int_type(__c, traits_type::eof())) > { > traits_type::assign(*__s++, traits_type::to_char_type(__c)); > ++__ret; > } > else > break; > } > } > return __ret; > } > > template<typename _CharT, typename _Traits> > streamsize > basic_streambuf<_CharT, _Traits>:: > xsputn(const char_type* __s, streamsize __n) > { > streamsize __ret = 0; > while (__ret < __n) > { > const streamsize __buf_len = this->epptr() - this->pptr(); > if (__buf_len) > { > const streamsize __remaining = __n - __ret; > const streamsize __len = std::min(__buf_len, __remaining); > traits_type::copy(this->pptr(), __s, __len); > __ret += __len; > __s += __len; > this->pbump(__len); > } > > if (__ret < __n) > { > int_type __c = this->overflow(traits_type::to_int_type(*__s)); > if (!traits_type::eq_int_type(__c, traits_type::eof())) > { > ++__ret; > ++__s; > } > else > break; > } > } > return __ret; > } > > > > > template<typename _CharT, typename _Traits> > streamsize > __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>* __sbin, > basic_streambuf<_CharT, _Traits>* __sbout, > bool& __ineof) > { > streamsize __ret = 0; > __ineof = true; > typename _Traits::int_type __c = __sbin->sgetc(); > while (!_Traits::eq_int_type(__c, _Traits::eof())) > { > __c = __sbout->sputc(_Traits::to_char_type(__c)); > if (_Traits::eq_int_type(__c, _Traits::eof())) > { > __ineof = false; > break; > } > ++__ret; > __c = __sbin->snextc(); > } > return __ret; > } > > template<typename _CharT, typename _Traits> > inline streamsize > __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin, > basic_streambuf<_CharT, _Traits>* __sbout) > { > bool __ineof; > return __copy_streambufs_eof(__sbin, __sbout, __ineof); > } > > > > > > extern template class basic_streambuf<char>; > extern template > streamsize > __copy_streambufs(basic_streambuf<char>*, > basic_streambuf<char>*); > extern template > streamsize > __copy_streambufs_eof(basic_streambuf<char>*, > basic_streambuf<char>*, bool&); > > > extern template class basic_streambuf<wchar_t>; > extern template > streamsize > __copy_streambufs(basic_streambuf<wchar_t>*, > basic_streambuf<wchar_t>*); > extern template > streamsize > __copy_streambufs_eof(basic_streambuf<wchar_t>*, > basic_streambuf<wchar_t>*, bool&); > > > >} ># 802 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/streambuf" 2 3 ># 50 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ios" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 1 3 ># 40 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > ># 41 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 1 3 ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwctype" 1 3 ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwctype" 3 > ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwctype" 3 > > > > ># 1 "/usr/include/wctype.h" 1 3 4 ># 50 "/usr/include/wctype.h" 3 4 > > > >typedef unsigned long int wctype_t; > ># 72 "/usr/include/wctype.h" 3 4 >enum >{ > __ISwupper = 0, > __ISwlower = 1, > __ISwalpha = 2, > __ISwdigit = 3, > __ISwxdigit = 4, > __ISwspace = 5, > __ISwprint = 6, > __ISwgraph = 7, > __ISwblank = 8, > __ISwcntrl = 9, > __ISwpunct = 10, > __ISwalnum = 11, > > _ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))), > _ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))), > _ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))), > _ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))), > _ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))), > _ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))), > _ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))), > _ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))), > _ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))), > _ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))), > _ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))), > _ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24)))) >}; > > > >extern "C" { > > > > > > > > >extern int iswalnum (wint_t __wc) throw (); > > > > > >extern int iswalpha (wint_t __wc) throw (); > > >extern int iswcntrl (wint_t __wc) throw (); > > > >extern int iswdigit (wint_t __wc) throw (); > > > >extern int iswgraph (wint_t __wc) throw (); > > > > >extern int iswlower (wint_t __wc) throw (); > > >extern int iswprint (wint_t __wc) throw (); > > > > >extern int iswpunct (wint_t __wc) throw (); > > > > >extern int iswspace (wint_t __wc) throw (); > > > > >extern int iswupper (wint_t __wc) throw (); > > > > >extern int iswxdigit (wint_t __wc) throw (); > > > > > >extern int iswblank (wint_t __wc) throw (); ># 172 "/usr/include/wctype.h" 3 4 >extern wctype_t wctype (__const char *__property) throw (); > > > >extern int iswctype (wint_t __wc, wctype_t __desc) throw (); > > > > > > > > > > >typedef __const __int32_t *wctrans_t; > > > > > > > >extern wint_t towlower (wint_t __wc) throw (); > > >extern wint_t towupper (wint_t __wc) throw (); > > >} ># 214 "/usr/include/wctype.h" 3 4 >extern "C" { > > > > >extern wctrans_t wctrans (__const char *__property) throw (); > > >extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw (); > > > > > > > > >extern int iswalnum_l (wint_t __wc, __locale_t __locale) throw (); > > > > > >extern int iswalpha_l (wint_t __wc, __locale_t __locale) throw (); > > >extern int iswcntrl_l (wint_t __wc, __locale_t __locale) throw (); > > > >extern int iswdigit_l (wint_t __wc, __locale_t __locale) throw (); > > > >extern int iswgraph_l (wint_t __wc, __locale_t __locale) throw (); > > > > >extern int iswlower_l (wint_t __wc, __locale_t __locale) throw (); > > >extern int iswprint_l (wint_t __wc, __locale_t __locale) throw (); > > > > >extern int iswpunct_l (wint_t __wc, __locale_t __locale) throw (); > > > > >extern int iswspace_l (wint_t __wc, __locale_t __locale) throw (); > > > > >extern int iswupper_l (wint_t __wc, __locale_t __locale) throw (); > > > > >extern int iswxdigit_l (wint_t __wc, __locale_t __locale) throw (); > > > > >extern int iswblank_l (wint_t __wc, __locale_t __locale) throw (); > > > >extern wctype_t wctype_l (__const char *__property, __locale_t __locale) > throw (); > > > >extern int iswctype_l (wint_t __wc, wctype_t __desc, __locale_t __locale) > throw (); > > > > > > > >extern wint_t towlower_l (wint_t __wc, __locale_t __locale) throw (); > > >extern wint_t towupper_l (wint_t __wc, __locale_t __locale) throw (); > > > >extern wctrans_t wctrans_l (__const char *__property, __locale_t __locale) > throw (); > > >extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, > __locale_t __locale) throw (); > > > >} ># 52 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwctype" 2 3 ># 81 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cwctype" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { > > using ::wctrans_t; > using ::wctype_t; > using ::wint_t; > > using ::iswalnum; > using ::iswalpha; > > using ::iswblank; > > using ::iswcntrl; > using ::iswctype; > using ::iswdigit; > using ::iswgraph; > using ::iswlower; > using ::iswprint; > using ::iswpunct; > using ::iswspace; > using ::iswupper; > using ::iswxdigit; > using ::towctrans; > using ::towlower; > using ::towupper; > using ::wctrans; > using ::wctype; > >} ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cctype" 1 3 ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cctype" 3 > ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/cctype" 3 ># 48 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/ctype_base.h" 1 3 ># 42 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/ctype_base.h" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { > > > struct ctype_base > { > > typedef const int* __to_type; > > > > typedef unsigned short mask; > static const mask upper = _ISupper; > static const mask lower = _ISlower; > static const mask alpha = _ISalpha; > static const mask digit = _ISdigit; > static const mask xdigit = _ISxdigit; > static const mask space = _ISspace; > static const mask print = _ISprint; > static const mask graph = _ISalpha | _ISdigit | _ISpunct; > static const mask cntrl = _IScntrl; > static const mask punct = _ISpunct; > static const mask alnum = _ISalpha | _ISdigit; > }; > >} ># 49 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 2 3 > > > > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/streambuf_iterator.h" 1 3 ># 40 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/streambuf_iterator.h" 3 > ># 41 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/streambuf_iterator.h" 3 > > > > >namespace std __attribute__ ((__visibility__ ("default"))) { > > > > template<typename _CharT, typename _Traits> > class istreambuf_iterator > : public iterator<input_iterator_tag, _CharT, typename _Traits::off_type, > _CharT*, _CharT&> > { > public: > > > > typedef _CharT char_type; > typedef _Traits traits_type; > typedef typename _Traits::int_type int_type; > typedef basic_streambuf<_CharT, _Traits> streambuf_type; > typedef basic_istream<_CharT, _Traits> istream_type; > > > template<typename _CharT2> > friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, > ostreambuf_iterator<_CharT2> >::__type > copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, > ostreambuf_iterator<_CharT2>); > > template<bool _IsMove, typename _CharT2> > friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, > _CharT2*>::__type > __copy_move_a2(istreambuf_iterator<_CharT2>, > istreambuf_iterator<_CharT2>, _CharT2*); > > template<typename _CharT2> > friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, > istreambuf_iterator<_CharT2> >::__type > find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, > const _CharT2&); > > private: > > > > > > > > mutable streambuf_type* _M_sbuf; > mutable int_type _M_c; > > public: > > istreambuf_iterator() throw() > : _M_sbuf(0), _M_c(traits_type::eof()) { } > > > istreambuf_iterator(istream_type& __s) throw() > : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { } > > > istreambuf_iterator(streambuf_type* __s) throw() > : _M_sbuf(__s), _M_c(traits_type::eof()) { } > > > > > char_type > operator*() const > { > > > > > > > > return traits_type::to_char_type(_M_get()); > } > > > istreambuf_iterator& > operator++() > { > ; > > > if (_M_sbuf) > { > _M_sbuf->sbumpc(); > _M_c = traits_type::eof(); > } > return *this; > } > > > istreambuf_iterator > operator++(int) > { > ; > > > > istreambuf_iterator __old = *this; > if (_M_sbuf) > { > __old._M_c = _M_sbuf->sbumpc(); > _M_c = traits_type::eof(); > } > return __old; > } > > > > > > bool > equal(const istreambuf_iterator& __b) const > { return _M_at_eof() == __b._M_at_eof(); } > > private: > int_type > _M_get() const > { > const int_type __eof = traits_type::eof(); > int_type __ret = __eof; > if (_M_sbuf) > { > if (!traits_type::eq_int_type(_M_c, __eof)) > __ret = _M_c; > else if (!traits_type::eq_int_type((__ret = _M_sbuf->sgetc()), > __eof)) > _M_c = __ret; > else > _M_sbuf = 0; > } > return __ret; > } > > bool > _M_at_eof() const > { > const int_type __eof = traits_type::eof(); > return traits_type::eq_int_type(_M_get(), __eof); > } > }; > > template<typename _CharT, typename _Traits> > inline bool > operator==(const istreambuf_iterator<_CharT, _Traits>& __a, > const istreambuf_iterator<_CharT, _Traits>& __b) > { return __a.equal(__b); } > > template<typename _CharT, typename _Traits> > inline bool > operator!=(const istreambuf_iterator<_CharT, _Traits>& __a, > const istreambuf_iterator<_CharT, _Traits>& __b) > { return !__a.equal(__b); } > > > template<typename _CharT, typename _Traits> > class ostreambuf_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > public: > > > > typedef _CharT char_type; > typedef _Traits traits_type; > typedef basic_streambuf<_CharT, _Traits> streambuf_type; > typedef basic_ostream<_CharT, _Traits> ostream_type; > > > template<typename _CharT2> > friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, > ostreambuf_iterator<_CharT2> >::__type > copy(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>, > ostreambuf_iterator<_CharT2>); > > private: > streambuf_type* _M_sbuf; > bool _M_failed; > > public: > > ostreambuf_iterator(ostream_type& __s) throw () > : _M_sbuf(__s.rdbuf()), _M_failed(!_M_sbuf) { } > > > ostreambuf_iterator(streambuf_type* __s) throw () > : _M_sbuf(__s), _M_failed(!_M_sbuf) { } > > > ostreambuf_iterator& > operator=(_CharT __c) > { > if (!_M_failed && > _Traits::eq_int_type(_M_sbuf->sputc(__c), _Traits::eof())) > _M_failed = true; > return *this; > } > > > ostreambuf_iterator& > operator*() > { return *this; } > > > ostreambuf_iterator& > operator++(int) > { return *this; } > > > ostreambuf_iterator& > operator++() > { return *this; } > > > bool > failed() const throw() > { return _M_failed; } > > ostreambuf_iterator& > _M_put(const _CharT* __ws, streamsize __len) > { > if (__builtin_expect(!_M_failed, true) > && __builtin_expect(this->_M_sbuf->sputn(__ws, __len) != __len, > false)) > _M_failed = true; > return *this; > } > }; > > > template<typename _CharT> > typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, > ostreambuf_iterator<_CharT> >::__type > copy(istreambuf_iterator<_CharT> __first, > istreambuf_iterator<_CharT> __last, > ostreambuf_iterator<_CharT> __result) > { > if (__first._M_sbuf && !__last._M_sbuf && !__result._M_failed) > { > bool __ineof; > __copy_streambufs_eof(__first._M_sbuf, __result._M_sbuf, __ineof); > if (!__ineof) > __result._M_failed = true; > } > return __result; > } > > template<bool _IsMove, typename _CharT> > typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, > ostreambuf_iterator<_CharT> >::__type > __copy_move_a2(_CharT* __first, _CharT* __last, > ostreambuf_iterator<_CharT> __result) > { > const streamsize __num = __last - __first; > if (__num > 0) > __result._M_put(__first, __num); > return __result; > } > > template<bool _IsMove, typename _CharT> > typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, > ostreambuf_iterator<_CharT> >::__type > __copy_move_a2(const _CharT* __first, const _CharT* __last, > ostreambuf_iterator<_CharT> __result) > { > const streamsize __num = __last - __first; > if (__num > 0) > __result._M_put(__first, __num); > return __result; > } > > template<bool _IsMove, typename _CharT> > typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, > _CharT*>::__type > __copy_move_a2(istreambuf_iterator<_CharT> __first, > istreambuf_iterator<_CharT> __last, _CharT* __result) > { > typedef istreambuf_iterator<_CharT> __is_iterator_type; > typedef typename __is_iterator_type::traits_type traits_type; > typedef typename __is_iterator_type::streambuf_type streambuf_type; > typedef typename traits_type::int_type int_type; > > if (__first._M_sbuf && !__last._M_sbuf) > { > streambuf_type* __sb = __first._M_sbuf; > int_type __c = __sb->sgetc(); > while (!traits_type::eq_int_type(__c, traits_type::eof())) > { > const streamsize __n = __sb->egptr() - __sb->gptr(); > if (__n > 1) > { > traits_type::copy(__result, __sb->gptr(), __n); > __sb->gbump(__n); > __result += __n; > __c = __sb->underflow(); > } > else > { > *__result++ = traits_type::to_char_type(__c); > __c = __sb->snextc(); > } > } > } > return __result; > } > > template<typename _CharT> > typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, > istreambuf_iterator<_CharT> >::__type > find(istreambuf_iterator<_CharT> __first, > istreambuf_iterator<_CharT> __last, const _CharT& __val) > { > typedef istreambuf_iterator<_CharT> __is_iterator_type; > typedef typename __is_iterator_type::traits_type traits_type; > typedef typename __is_iterator_type::streambuf_type streambuf_type; > typedef typename traits_type::int_type int_type; > > if (__first._M_sbuf && !__last._M_sbuf) > { > const int_type __ival = traits_type::to_int_type(__val); > streambuf_type* __sb = __first._M_sbuf; > int_type __c = __sb->sgetc(); > while (!traits_type::eq_int_type(__c, traits_type::eof()) > && !traits_type::eq_int_type(__c, __ival)) > { > streamsize __n = __sb->egptr() - __sb->gptr(); > if (__n > 1) > { > const _CharT* __p = traits_type::find(__sb->gptr(), > __n, __val); > if (__p) > __n = __p - __sb->gptr(); > __sb->gbump(__n); > __c = __sb->sgetc(); > } > else > __c = __sb->snextc(); > } > > if (!traits_type::eq_int_type(__c, traits_type::eof())) > __first._M_c = __c; > else > __first._M_sbuf = 0; > } > return __first; > } > >} ># 56 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 2 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { ># 69 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > template<typename _Tv> > void > __convert_to_v(const char* __in, _Tv& __out, ios_base::iostate& __err, > const __c_locale& __cloc); > > > template<> > void > __convert_to_v(const char*, float&, ios_base::iostate&, > const __c_locale&); > > template<> > void > __convert_to_v(const char*, double&, ios_base::iostate&, > const __c_locale&); > > template<> > void > __convert_to_v(const char*, long double&, ios_base::iostate&, > const __c_locale&); > > > > template<typename _CharT, typename _Traits> > struct __pad > { > static void > _S_pad(ios_base& __io, _CharT __fill, _CharT* __news, > const _CharT* __olds, const streamsize __newlen, > const streamsize __oldlen); > }; > > > > > > > template<typename _CharT> > _CharT* > __add_grouping(_CharT* __s, _CharT __sep, > const char* __gbeg, size_t __gsize, > const _CharT* __first, const _CharT* __last); > > > > > template<typename _CharT> > inline > ostreambuf_iterator<_CharT> > __write(ostreambuf_iterator<_CharT> __s, const _CharT* __ws, int __len) > { > __s._M_put(__ws, __len); > return __s; > } > > > template<typename _CharT, typename _OutIter> > inline > _OutIter > __write(_OutIter __s, const _CharT* __ws, int __len) > { > for (int __j = 0; __j < __len; __j++, ++__s) > *__s = __ws[__j]; > return __s; > } ># 149 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > template<typename _CharT> > class __ctype_abstract_base : public locale::facet, public ctype_base > { > public: > > > typedef _CharT char_type; ># 167 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > bool > is(mask __m, char_type __c) const > { return this->do_is(__m, __c); } ># 184 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > const char_type* > is(const char_type *__lo, const char_type *__hi, mask *__vec) const > { return this->do_is(__lo, __hi, __vec); } ># 200 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > const char_type* > scan_is(mask __m, const char_type* __lo, const char_type* __hi) const > { return this->do_scan_is(__m, __lo, __hi); } ># 216 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > const char_type* > scan_not(mask __m, const char_type* __lo, const char_type* __hi) const > { return this->do_scan_not(__m, __lo, __hi); } ># 230 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > char_type > toupper(char_type __c) const > { return this->do_toupper(__c); } ># 245 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > const char_type* > toupper(char_type *__lo, const char_type* __hi) const > { return this->do_toupper(__lo, __hi); } ># 259 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > char_type > tolower(char_type __c) const > { return this->do_tolower(__c); } ># 274 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > const char_type* > tolower(char_type* __lo, const char_type* __hi) const > { return this->do_tolower(__lo, __hi); } ># 291 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > char_type > widen(char __c) const > { return this->do_widen(__c); } ># 310 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > const char* > widen(const char* __lo, const char* __hi, char_type* __to) const > { return this->do_widen(__lo, __hi, __to); } ># 329 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > char > narrow(char_type __c, char __dfault) const > { return this->do_narrow(__c, __dfault); } ># 351 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > const char_type* > narrow(const char_type* __lo, const char_type* __hi, > char __dfault, char *__to) const > { return this->do_narrow(__lo, __hi, __dfault, __to); } > > protected: > explicit > __ctype_abstract_base(size_t __refs = 0): facet(__refs) { } > > virtual > ~__ctype_abstract_base() { } ># 376 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual bool > do_is(mask __m, char_type __c) const = 0; ># 395 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_is(const char_type* __lo, const char_type* __hi, > mask* __vec) const = 0; ># 414 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_scan_is(mask __m, const char_type* __lo, > const char_type* __hi) const = 0; ># 433 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_scan_not(mask __m, const char_type* __lo, > const char_type* __hi) const = 0; ># 451 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char_type > do_toupper(char_type) const = 0; ># 468 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_toupper(char_type* __lo, const char_type* __hi) const = 0; ># 484 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char_type > do_tolower(char_type) const = 0; ># 501 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_tolower(char_type* __lo, const char_type* __hi) const = 0; ># 520 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char_type > do_widen(char) const = 0; ># 541 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char* > do_widen(const char* __lo, const char* __hi, > char_type* __dest) const = 0; ># 563 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char > do_narrow(char_type, char __dfault) const = 0; ># 587 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_narrow(const char_type* __lo, const char_type* __hi, > char __dfault, char* __dest) const = 0; > }; ># 610 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > template<typename _CharT> > class ctype : public __ctype_abstract_base<_CharT> > { > public: > > typedef _CharT char_type; > typedef typename __ctype_abstract_base<_CharT>::mask mask; > > > static locale::id id; > > explicit > ctype(size_t __refs = 0) : __ctype_abstract_base<_CharT>(__refs) { } > > protected: > virtual > ~ctype(); > > virtual bool > do_is(mask __m, char_type __c) const; > > virtual const char_type* > do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; > > virtual const char_type* > do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; > > virtual const char_type* > do_scan_not(mask __m, const char_type* __lo, > const char_type* __hi) const; > > virtual char_type > do_toupper(char_type __c) const; > > virtual const char_type* > do_toupper(char_type* __lo, const char_type* __hi) const; > > virtual char_type > do_tolower(char_type __c) const; > > virtual const char_type* > do_tolower(char_type* __lo, const char_type* __hi) const; > > virtual char_type > do_widen(char __c) const; > > virtual const char* > do_widen(const char* __lo, const char* __hi, char_type* __dest) const; > > virtual char > do_narrow(char_type, char __dfault) const; > > virtual const char_type* > do_narrow(const char_type* __lo, const char_type* __hi, > char __dfault, char* __dest) const; > }; > > template<typename _CharT> > locale::id ctype<_CharT>::id; ># 679 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > template<> > class ctype<char> : public locale::facet, public ctype_base > { > public: > > > typedef char char_type; > > protected: > > __c_locale _M_c_locale_ctype; > bool _M_del; > __to_type _M_toupper; > __to_type _M_tolower; > const mask* _M_table; > mutable char _M_widen_ok; > mutable char _M_widen[1 + static_cast<unsigned char>(-1)]; > mutable char _M_narrow[1 + static_cast<unsigned char>(-1)]; > mutable char _M_narrow_ok; > > > public: > > static locale::id id; > > static const size_t table_size = 1 + static_cast<unsigned char>(-1); ># 716 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > explicit > ctype(const mask* __table = 0, bool __del = false, size_t __refs = 0); ># 729 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > explicit > ctype(__c_locale __cloc, const mask* __table = 0, bool __del = false, > size_t __refs = 0); ># 742 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > inline bool > is(mask __m, char __c) const; ># 757 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > inline const char* > is(const char* __lo, const char* __hi, mask* __vec) const; ># 771 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > inline const char* > scan_is(mask __m, const char* __lo, const char* __hi) const; ># 785 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > inline const char* > scan_not(mask __m, const char* __lo, const char* __hi) const; ># 800 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > char_type > toupper(char_type __c) const > { return this->do_toupper(__c); } ># 817 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > const char_type* > toupper(char_type *__lo, const char_type* __hi) const > { return this->do_toupper(__lo, __hi); } ># 833 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > char_type > tolower(char_type __c) const > { return this->do_tolower(__c); } ># 850 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > const char_type* > tolower(char_type* __lo, const char_type* __hi) const > { return this->do_tolower(__lo, __hi); } ># 870 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > char_type > widen(char __c) const > { > if (_M_widen_ok) > return _M_widen[static_cast<unsigned char>(__c)]; > this->_M_widen_init(); > return this->do_widen(__c); > } ># 897 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > const char* > widen(const char* __lo, const char* __hi, char_type* __to) const > { > if (_M_widen_ok == 1) > { > __builtin_memcpy(__to, __lo, __hi - __lo); > return __hi; > } > if (!_M_widen_ok) > _M_widen_init(); > return this->do_widen(__lo, __hi, __to); > } ># 928 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > char > narrow(char_type __c, char __dfault) const > { > if (_M_narrow[static_cast<unsigned char>(__c)]) > return _M_narrow[static_cast<unsigned char>(__c)]; > const char __t = do_narrow(__c, __dfault); > if (__t != __dfault) > _M_narrow[static_cast<unsigned char>(__c)] = __t; > return __t; > } ># 961 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > const char_type* > narrow(const char_type* __lo, const char_type* __hi, > char __dfault, char *__to) const > { > if (__builtin_expect(_M_narrow_ok == 1, true)) > { > __builtin_memcpy(__to, __lo, __hi - __lo); > return __hi; > } > if (!_M_narrow_ok) > _M_narrow_init(); > return this->do_narrow(__lo, __hi, __dfault, __to); > } > > > > > > const mask* > table() const throw() > { return _M_table; } > > > static const mask* > classic_table() throw(); > protected: > > > > > > > > virtual > ~ctype(); ># 1010 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char_type > do_toupper(char_type) const; ># 1027 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_toupper(char_type* __lo, const char_type* __hi) const; ># 1043 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char_type > do_tolower(char_type) const; ># 1060 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_tolower(char_type* __lo, const char_type* __hi) const; ># 1080 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char_type > do_widen(char __c) const > { return __c; } ># 1103 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char* > do_widen(const char* __lo, const char* __hi, char_type* __dest) const > { > __builtin_memcpy(__dest, __lo, __hi - __lo); > return __hi; > } ># 1129 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char > do_narrow(char_type __c, char) const > { return __c; } ># 1155 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_narrow(const char_type* __lo, const char_type* __hi, > char, char* __dest) const > { > __builtin_memcpy(__dest, __lo, __hi - __lo); > return __hi; > } > > private: > > void _M_widen_init() const > { > char __tmp[sizeof(_M_widen)]; > for (size_t __i = 0; __i < sizeof(_M_widen); ++__i) > __tmp[__i] = __i; > do_widen(__tmp, __tmp + sizeof(__tmp), _M_widen); > > _M_widen_ok = 1; > > if (__builtin_memcmp(__tmp, _M_widen, sizeof(_M_widen))) > _M_widen_ok = 2; > } > > > > > void _M_narrow_init() const > { > char __tmp[sizeof(_M_narrow)]; > for (size_t __i = 0; __i < sizeof(_M_narrow); ++__i) > __tmp[__i] = __i; > do_narrow(__tmp, __tmp + sizeof(__tmp), 0, _M_narrow); > > _M_narrow_ok = 1; > if (__builtin_memcmp(__tmp, _M_narrow, sizeof(_M_narrow))) > _M_narrow_ok = 2; > else > { > > > char __c; > do_narrow(__tmp, __tmp + 1, 1, &__c); > if (__c == 1) > _M_narrow_ok = 2; > } > } > }; > > template<> > const ctype<char>& > use_facet<ctype<char> >(const locale& __loc); ># 1219 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > template<> > class ctype<wchar_t> : public __ctype_abstract_base<wchar_t> > { > public: > > > typedef wchar_t char_type; > typedef wctype_t __wmask_type; > > protected: > __c_locale _M_c_locale_ctype; > > > bool _M_narrow_ok; > char _M_narrow[128]; > wint_t _M_widen[1 + static_cast<unsigned char>(-1)]; > > > mask _M_bit[16]; > __wmask_type _M_wmask[16]; > > public: > > > static locale::id id; ># 1252 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > explicit > ctype(size_t __refs = 0); ># 1263 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > explicit > ctype(__c_locale __cloc, size_t __refs = 0); > > protected: > __wmask_type > _M_convert_to_wmask(const mask __m) const; > > > virtual > ~ctype(); ># 1287 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual bool > do_is(mask __m, char_type __c) const; ># 1306 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_is(const char_type* __lo, const char_type* __hi, mask* __vec) const; ># 1324 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_scan_is(mask __m, const char_type* __lo, const char_type* __hi) const; ># 1342 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_scan_not(mask __m, const char_type* __lo, > const char_type* __hi) const; ># 1359 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char_type > do_toupper(char_type) const; ># 1376 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_toupper(char_type* __lo, const char_type* __hi) const; ># 1392 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char_type > do_tolower(char_type) const; ># 1409 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_tolower(char_type* __lo, const char_type* __hi) const; ># 1429 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char_type > do_widen(char) const; ># 1451 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char* > do_widen(const char* __lo, const char* __hi, char_type* __dest) const; ># 1474 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char > do_narrow(char_type, char __dfault) const; ># 1500 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual const char_type* > do_narrow(const char_type* __lo, const char_type* __hi, > char __dfault, char* __dest) const; > > > void > _M_initialize_ctype(); > }; > > template<> > const ctype<wchar_t>& > use_facet<ctype<wchar_t> >(const locale& __loc); > > > > template<typename _CharT> > class ctype_byname : public ctype<_CharT> > { > public: > typedef typename ctype<_CharT>::mask mask; > > explicit > ctype_byname(const char* __s, size_t __refs = 0); > > protected: > virtual > ~ctype_byname() { }; > }; > > > template<> > class ctype_byname<char> : public ctype<char> > { > public: > explicit > ctype_byname(const char* __s, size_t __refs = 0); > > protected: > virtual > ~ctype_byname(); > }; > > > template<> > class ctype_byname<wchar_t> : public ctype<wchar_t> > { > public: > explicit > ctype_byname(const char* __s, size_t __refs = 0); > > protected: > virtual > ~ctype_byname(); > }; > > >} > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/ctype_inline.h" 1 3 ># 42 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/i386-redhat-linux/bits/ctype_inline.h" 3 >namespace std __attribute__ ((__visibility__ ("default"))) { > > bool > ctype<char>:: > is(mask __m, char __c) const > { return _M_table[static_cast<unsigned char>(__c)] & __m; } > > const char* > ctype<char>:: > is(const char* __low, const char* __high, mask* __vec) const > { > while (__low < __high) > *__vec++ = _M_table[static_cast<unsigned char>(*__low++)]; > return __high; > } > > const char* > ctype<char>:: > scan_is(mask __m, const char* __low, const char* __high) const > { > while (__low < __high > && !(_M_table[static_cast<unsigned char>(*__low)] & __m)) > ++__low; > return __low; > } > > const char* > ctype<char>:: > scan_not(mask __m, const char* __low, const char* __high) const > { > while (__low < __high > && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0) > ++__low; > return __low; > } > >} ># 1560 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 2 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { > > > class __num_base > { > public: > > > enum > { > _S_ominus, > _S_oplus, > _S_ox, > _S_oX, > _S_odigits, > _S_odigits_end = _S_odigits + 16, > _S_oudigits = _S_odigits_end, > _S_oudigits_end = _S_oudigits + 16, > _S_oe = _S_odigits + 14, > _S_oE = _S_oudigits + 14, > _S_oend = _S_oudigits_end > }; > > > > > > > static const char* _S_atoms_out; > > > > static const char* _S_atoms_in; > > enum > { > _S_iminus, > _S_iplus, > _S_ix, > _S_iX, > _S_izero, > _S_ie = _S_izero + 14, > _S_iE = _S_izero + 20, > _S_iend = 26 > }; > > > > static void > _S_format_float(const ios_base& __io, char* __fptr, char __mod); > }; > > template<typename _CharT> > struct __numpunct_cache : public locale::facet > { > const char* _M_grouping; > size_t _M_grouping_size; > bool _M_use_grouping; > const _CharT* _M_truename; > size_t _M_truename_size; > const _CharT* _M_falsename; > size_t _M_falsename_size; > _CharT _M_decimal_point; > _CharT _M_thousands_sep; > > > > > > _CharT _M_atoms_out[__num_base::_S_oend]; > > > > > > _CharT _M_atoms_in[__num_base::_S_iend]; > > bool _M_allocated; > > __numpunct_cache(size_t __refs = 0) : facet(__refs), > _M_grouping(__null), _M_grouping_size(0), _M_use_grouping(false), > _M_truename(__null), _M_truename_size(0), _M_falsename(__null), > _M_falsename_size(0), _M_decimal_point(_CharT()), > _M_thousands_sep(_CharT()), _M_allocated(false) > { } > > ~__numpunct_cache(); > > void > _M_cache(const locale& __loc); > > private: > __numpunct_cache& > operator=(const __numpunct_cache&); > > explicit > __numpunct_cache(const __numpunct_cache&); > }; > > template<typename _CharT> > __numpunct_cache<_CharT>::~__numpunct_cache() > { > if (_M_allocated) > { > delete [] _M_grouping; > delete [] _M_truename; > delete [] _M_falsename; > } > } ># 1684 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > template<typename _CharT> > class numpunct : public locale::facet > { > public: > > > > typedef _CharT char_type; > typedef basic_string<_CharT> string_type; > > typedef __numpunct_cache<_CharT> __cache_type; > > protected: > __cache_type* _M_data; > > public: > > static locale::id id; > > > > > > > explicit > numpunct(size_t __refs = 0) : facet(__refs), _M_data(__null) > { _M_initialize_numpunct(); } ># 1721 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > explicit > numpunct(__cache_type* __cache, size_t __refs = 0) > : facet(__refs), _M_data(__cache) > { _M_initialize_numpunct(); } ># 1735 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > explicit > numpunct(__c_locale __cloc, size_t __refs = 0) > : facet(__refs), _M_data(__null) > { _M_initialize_numpunct(__cloc); } ># 1749 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > char_type > decimal_point() const > { return this->do_decimal_point(); } ># 1762 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > char_type > thousands_sep() const > { return this->do_thousands_sep(); } ># 1793 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > string > grouping() const > { return this->do_grouping(); } ># 1806 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > string_type > truename() const > { return this->do_truename(); } ># 1819 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > string_type > falsename() const > { return this->do_falsename(); } > > protected: > > virtual > ~numpunct(); ># 1836 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char_type > do_decimal_point() const > { return _M_data->_M_decimal_point; } ># 1848 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual char_type > do_thousands_sep() const > { return _M_data->_M_thousands_sep; } ># 1861 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual string > do_grouping() const > { return _M_data->_M_grouping; } ># 1874 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual string_type > do_truename() const > { return _M_data->_M_truename; } ># 1887 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual string_type > do_falsename() const > { return _M_data->_M_falsename; } > > > void > _M_initialize_numpunct(__c_locale __cloc = __null); > }; > > template<typename _CharT> > locale::id numpunct<_CharT>::id; > > template<> > numpunct<char>::~numpunct(); > > template<> > void > numpunct<char>::_M_initialize_numpunct(__c_locale __cloc); > > > template<> > numpunct<wchar_t>::~numpunct(); > > template<> > void > numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc); > > > > template<typename _CharT> > class numpunct_byname : public numpunct<_CharT> > { > public: > typedef _CharT char_type; > typedef basic_string<_CharT> string_type; > > explicit > numpunct_byname(const char* __s, size_t __refs = 0) > : numpunct<_CharT>(__refs) > { > if (__builtin_strcmp(__s, "C") != 0 > && __builtin_strcmp(__s, "POSIX") != 0) > { > __c_locale __tmp; > this->_S_create_c_locale(__tmp, __s); > this->_M_initialize_numpunct(__tmp); > this->_S_destroy_c_locale(__tmp); > } > } > > protected: > virtual > ~numpunct_byname() { } > }; > > ># 1956 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > template<typename _CharT, typename _InIter> > class num_get : public locale::facet > { > public: > > > > typedef _CharT char_type; > typedef _InIter iter_type; > > > > static locale::id id; ># 1977 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > explicit > num_get(size_t __refs = 0) : facet(__refs) { } ># 2003 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > iter_type > get(iter_type __in, iter_type __end, ios_base& __io, > ios_base::iostate& __err, bool& __v) const > { return this->do_get(__in, __end, __io, __err, __v); } ># 2039 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > iter_type > get(iter_type __in, iter_type __end, ios_base& __io, > ios_base::iostate& __err, long& __v) const > { return this->do_get(__in, __end, __io, __err, __v); } > > iter_type > get(iter_type __in, iter_type __end, ios_base& __io, > ios_base::iostate& __err, unsigned short& __v) const > { return this->do_get(__in, __end, __io, __err, __v); } > > iter_type > get(iter_type __in, iter_type __end, ios_base& __io, > ios_base::iostate& __err, unsigned int& __v) const > { return this->do_get(__in, __end, __io, __err, __v); } > > iter_type > get(iter_type __in, iter_type __end, ios_base& __io, > ios_base::iostate& __err, unsigned long& __v) const > { return this->do_get(__in, __end, __io, __err, __v); } > > > iter_type > get(iter_type __in, iter_type __end, ios_base& __io, > ios_base::iostate& __err, long long& __v) const > { return this->do_get(__in, __end, __io, __err, __v); } > > iter_type > get(iter_type __in, iter_type __end, ios_base& __io, > ios_base::iostate& __err, unsigned long long& __v) const > { return this->do_get(__in, __end, __io, __err, __v); } ># 2098 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > iter_type > get(iter_type __in, iter_type __end, ios_base& __io, > ios_base::iostate& __err, float& __v) const > { return this->do_get(__in, __end, __io, __err, __v); } > > iter_type > get(iter_type __in, iter_type __end, ios_base& __io, > ios_base::iostate& __err, double& __v) const > { return this->do_get(__in, __end, __io, __err, __v); } > > iter_type > get(iter_type __in, iter_type __end, ios_base& __io, > ios_base::iostate& __err, long double& __v) const > { return this->do_get(__in, __end, __io, __err, __v); } ># 2140 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > iter_type > get(iter_type __in, iter_type __end, ios_base& __io, > ios_base::iostate& __err, void*& __v) const > { return this->do_get(__in, __end, __io, __err, __v); } > > protected: > > virtual ~num_get() { } > > iter_type > _M_extract_float(iter_type, iter_type, ios_base&, ios_base::iostate&, > string& __xtrc) const; > > template<typename _ValueT> > iter_type > _M_extract_int(iter_type, iter_type, ios_base&, ios_base::iostate&, > _ValueT& __v) const; > > template<typename _CharT2> > typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type > _M_find(const _CharT2*, size_t __len, _CharT2 __c) const > { > int __ret = -1; > if (__len <= 10) > { > if (__c >= _CharT2('0') && __c < _CharT2(_CharT2('0') + __len)) > __ret = __c - _CharT2('0'); > } > else > { > if (__c >= _CharT2('0') && __c <= _CharT2('9')) > __ret = __c - _CharT2('0'); > else if (__c >= _CharT2('a') && __c <= _CharT2('f')) > __ret = 10 + (__c - _CharT2('a')); > else if (__c >= _CharT2('A') && __c <= _CharT2('F')) > __ret = 10 + (__c - _CharT2('A')); > } > return __ret; > } > > template<typename _CharT2> > typename __gnu_cxx::__enable_if<!__is_char<_CharT2>::__value, > int>::__type > _M_find(const _CharT2* __zero, size_t __len, _CharT2 __c) const > { > int __ret = -1; > const char_type* __q = char_traits<_CharT2>::find(__zero, __len, __c); > if (__q) > { > __ret = __q - __zero; > if (__ret > 15) > __ret -= 6; > } > return __ret; > } ># 2211 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual iter_type > do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; > > > virtual iter_type > do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, long&) const; > > virtual iter_type > do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, > unsigned short&) const; > > virtual iter_type > do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, > unsigned int&) const; > > virtual iter_type > do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, > unsigned long&) const; > > > virtual iter_type > do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, > long long&) const; > > virtual iter_type > do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, > unsigned long long&) const; > > > virtual iter_type > do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, > float&) const; > > virtual iter_type > do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, > double&) const; > > > > > > > > virtual iter_type > do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, > long double&) const; > > > virtual iter_type > do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err, > void*&) const; ># 2270 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > }; > > template<typename _CharT, typename _InIter> > locale::id num_get<_CharT, _InIter>::id; ># 2287 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > template<typename _CharT, typename _OutIter> > class num_put : public locale::facet > { > public: > > > > typedef _CharT char_type; > typedef _OutIter iter_type; > > > > static locale::id id; ># 2308 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > explicit > num_put(size_t __refs = 0) : facet(__refs) { } ># 2326 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > iter_type > put(iter_type __s, ios_base& __f, char_type __fill, bool __v) const > { return this->do_put(__s, __f, __fill, __v); } ># 2368 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > iter_type > put(iter_type __s, ios_base& __f, char_type __fill, long __v) const > { return this->do_put(__s, __f, __fill, __v); } > > iter_type > put(iter_type __s, ios_base& __f, char_type __fill, > unsigned long __v) const > { return this->do_put(__s, __f, __fill, __v); } > > > iter_type > put(iter_type __s, ios_base& __f, char_type __fill, long long __v) const > { return this->do_put(__s, __f, __fill, __v); } > > iter_type > put(iter_type __s, ios_base& __f, char_type __fill, > unsigned long long __v) const > { return this->do_put(__s, __f, __fill, __v); } ># 2431 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > iter_type > put(iter_type __s, ios_base& __f, char_type __fill, double __v) const > { return this->do_put(__s, __f, __fill, __v); } > > iter_type > put(iter_type __s, ios_base& __f, char_type __fill, > long double __v) const > { return this->do_put(__s, __f, __fill, __v); } ># 2456 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > iter_type > put(iter_type __s, ios_base& __f, char_type __fill, > const void* __v) const > { return this->do_put(__s, __f, __fill, __v); } > > protected: > template<typename _ValueT> > iter_type > _M_insert_float(iter_type, ios_base& __io, char_type __fill, > char __mod, _ValueT __v) const; > > void > _M_group_float(const char* __grouping, size_t __grouping_size, > char_type __sep, const char_type* __p, char_type* __new, > char_type* __cs, int& __len) const; > > template<typename _ValueT> > iter_type > _M_insert_int(iter_type, ios_base& __io, char_type __fill, > _ValueT __v) const; > > void > _M_group_int(const char* __grouping, size_t __grouping_size, > char_type __sep, ios_base& __io, char_type* __new, > char_type* __cs, int& __len) const; > > void > _M_pad(char_type __fill, streamsize __w, ios_base& __io, > char_type* __new, const char_type* __cs, int& __len) const; > > > virtual > ~num_put() { }; ># 2504 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 3 > virtual iter_type > do_put(iter_type, ios_base&, char_type __fill, bool __v) const; > > virtual iter_type > do_put(iter_type, ios_base&, char_type __fill, long __v) const; > > virtual iter_type > do_put(iter_type, ios_base&, char_type __fill, unsigned long) const; > > > virtual iter_type > do_put(iter_type, ios_base&, char_type __fill, long long __v) const; > > virtual iter_type > do_put(iter_type, ios_base&, char_type __fill, unsigned long long) const; > > > virtual iter_type > do_put(iter_type, ios_base&, char_type __fill, double __v) const; > > > > > > > virtual iter_type > do_put(iter_type, ios_base&, char_type __fill, long double __v) const; > > > virtual iter_type > do_put(iter_type, ios_base&, char_type __fill, const void* __v) const; > > > > > > > > }; > > template <typename _CharT, typename _OutIter> > locale::id num_put<_CharT, _OutIter>::id; > > > > > > > > > > template<typename _CharT> > inline bool > isspace(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::space, __c); } > > > template<typename _CharT> > inline bool > isprint(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::print, __c); } > > > template<typename _CharT> > inline bool > iscntrl(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::cntrl, __c); } > > > template<typename _CharT> > inline bool > isupper(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::upper, __c); } > > > template<typename _CharT> > inline bool > islower(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::lower, __c); } > > > template<typename _CharT> > inline bool > isalpha(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, __c); } > > > template<typename _CharT> > inline bool > isdigit(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, __c); } > > > template<typename _CharT> > inline bool > ispunct(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::punct, __c); } > > > template<typename _CharT> > inline bool > isxdigit(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::xdigit, __c); } > > > template<typename _CharT> > inline bool > isalnum(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, __c); } > > > template<typename _CharT> > inline bool > isgraph(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c); } > > > template<typename _CharT> > inline _CharT > toupper(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).toupper(__c); } > > > template<typename _CharT> > inline _CharT > tolower(_CharT __c, const locale& __loc) > { return use_facet<ctype<_CharT> >(__loc).tolower(__c); } > >} > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.tcc" 1 3 ># 40 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.tcc" 3 > ># 41 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.tcc" 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { > > > > template<typename _Facet> > struct __use_cache > { > const _Facet* > operator() (const locale& __loc) const; > }; > > > template<typename _CharT> > struct __use_cache<__numpunct_cache<_CharT> > > { > const __numpunct_cache<_CharT>* > operator() (const locale& __loc) const > { > const size_t __i = numpunct<_CharT>::id._M_id(); > const locale::facet** __caches = __loc._M_impl->_M_caches; > if (!__caches[__i]) > { > __numpunct_cache<_CharT>* __tmp = __null; > try > { > __tmp = new __numpunct_cache<_CharT>; > __tmp->_M_cache(__loc); > } > catch(...) > { > delete __tmp; > throw; > } > __loc._M_impl->_M_install_cache(__tmp, __i); > } > return static_cast<const __numpunct_cache<_CharT>*>(__caches[__i]); > } > }; > > template<typename _CharT> > void > __numpunct_cache<_CharT>::_M_cache(const locale& __loc) > { > _M_allocated = true; > > const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc); > > _M_grouping_size = __np.grouping().size(); > char* __grouping = new char[_M_grouping_size]; > __np.grouping().copy(__grouping, _M_grouping_size); > _M_grouping = __grouping; > _M_use_grouping = (_M_grouping_size > && static_cast<signed char>(__np.grouping()[0]) > 0); > > _M_truename_size = __np.truename().size(); > _CharT* __truename = new _CharT[_M_truename_size]; > __np.truename().copy(__truename, _M_truename_size); > _M_truename = __truename; > > _M_falsename_size = __np.falsename().size(); > _CharT* __falsename = new _CharT[_M_falsename_size]; > __np.falsename().copy(__falsename, _M_falsename_size); > _M_falsename = __falsename; > > _M_decimal_point = __np.decimal_point(); > _M_thousands_sep = __np.thousands_sep(); > > const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc); > __ct.widen(__num_base::_S_atoms_out, > __num_base::_S_atoms_out + __num_base::_S_oend, _M_atoms_out); > __ct.widen(__num_base::_S_atoms_in, > __num_base::_S_atoms_in + __num_base::_S_iend, _M_atoms_in); > } ># 124 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.tcc" 3 > bool > __verify_grouping(const char* __grouping, size_t __grouping_size, > const string& __grouping_tmp); > > > > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > _M_extract_float(_InIter __beg, _InIter __end, ios_base& __io, > ios_base::iostate& __err, string& __xtrc) const > { > typedef char_traits<_CharT> __traits_type; > typedef __numpunct_cache<_CharT> __cache_type; > __use_cache<__cache_type> __uc; > const locale& __loc = __io._M_getloc(); > const __cache_type* __lc = __uc(__loc); > const _CharT* __lit = __lc->_M_atoms_in; > char_type __c = char_type(); > > > bool __testeof = __beg == __end; > > > if (!__testeof) > { > __c = *__beg; > const bool __plus = __c == __lit[__num_base::_S_iplus]; > if ((__plus || __c == __lit[__num_base::_S_iminus]) > && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) > && !(__c == __lc->_M_decimal_point)) > { > __xtrc += __plus ? '+' : '-'; > if (++__beg != __end) > __c = *__beg; > else > __testeof = true; > } > } > > > bool __found_mantissa = false; > int __sep_pos = 0; > while (!__testeof) > { > if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) > || __c == __lc->_M_decimal_point) > break; > else if (__c == __lit[__num_base::_S_izero]) > { > if (!__found_mantissa) > { > __xtrc += '0'; > __found_mantissa = true; > } > ++__sep_pos; > > if (++__beg != __end) > __c = *__beg; > else > __testeof = true; > } > else > break; > } > > > bool __found_dec = false; > bool __found_sci = false; > string __found_grouping; > if (__lc->_M_use_grouping) > __found_grouping.reserve(32); > const char_type* __lit_zero = __lit + __num_base::_S_izero; > > if (!__lc->_M_allocated) > > while (!__testeof) > { > const int __digit = _M_find(__lit_zero, 10, __c); > if (__digit != -1) > { > __xtrc += '0' + __digit; > __found_mantissa = true; > } > else if (__c == __lc->_M_decimal_point > && !__found_dec && !__found_sci) > { > __xtrc += '.'; > __found_dec = true; > } > else if ((__c == __lit[__num_base::_S_ie] > || __c == __lit[__num_base::_S_iE]) > && !__found_sci && __found_mantissa) > { > > __xtrc += 'e'; > __found_sci = true; > > > if (++__beg != __end) > { > __c = *__beg; > const bool __plus = __c == __lit[__num_base::_S_iplus]; > if (__plus || __c == __lit[__num_base::_S_iminus]) > __xtrc += __plus ? '+' : '-'; > else > continue; > } > else > { > __testeof = true; > break; > } > } > else > break; > > if (++__beg != __end) > __c = *__beg; > else > __testeof = true; > } > else > while (!__testeof) > { > > > if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) > { > if (!__found_dec && !__found_sci) > { > > > if (__sep_pos) > { > __found_grouping += static_cast<char>(__sep_pos); > __sep_pos = 0; > } > else > { > > > __xtrc.clear(); > break; > } > } > else > break; > } > else if (__c == __lc->_M_decimal_point) > { > if (!__found_dec && !__found_sci) > { > > > > if (__found_grouping.size()) > __found_grouping += static_cast<char>(__sep_pos); > __xtrc += '.'; > __found_dec = true; > } > else > break; > } > else > { > const char_type* __q = > __traits_type::find(__lit_zero, 10, __c); > if (__q) > { > __xtrc += '0' + (__q - __lit_zero); > __found_mantissa = true; > ++__sep_pos; > } > else if ((__c == __lit[__num_base::_S_ie] > || __c == __lit[__num_base::_S_iE]) > && !__found_sci && __found_mantissa) > { > > if (__found_grouping.size() && !__found_dec) > __found_grouping += static_cast<char>(__sep_pos); > __xtrc += 'e'; > __found_sci = true; > > > if (++__beg != __end) > { > __c = *__beg; > const bool __plus = __c == __lit[__num_base::_S_iplus]; > if ((__plus || __c == __lit[__num_base::_S_iminus]) > && !(__lc->_M_use_grouping > && __c == __lc->_M_thousands_sep) > && !(__c == __lc->_M_decimal_point)) > __xtrc += __plus ? '+' : '-'; > else > continue; > } > else > { > __testeof = true; > break; > } > } > else > break; > } > > if (++__beg != __end) > __c = *__beg; > else > __testeof = true; > } > > > > if (__found_grouping.size()) > { > > if (!__found_dec && !__found_sci) > __found_grouping += static_cast<char>(__sep_pos); > > if (!std::__verify_grouping(__lc->_M_grouping, > __lc->_M_grouping_size, > __found_grouping)) > __err |= ios_base::failbit; > } > > > if (__testeof) > __err |= ios_base::eofbit; > return __beg; > } > > template<typename _CharT, typename _InIter> > template<typename _ValueT> > _InIter > num_get<_CharT, _InIter>:: > _M_extract_int(_InIter __beg, _InIter __end, ios_base& __io, > ios_base::iostate& __err, _ValueT& __v) const > { > typedef char_traits<_CharT> __traits_type; > using __gnu_cxx::__add_unsigned; > typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; > typedef __numpunct_cache<_CharT> __cache_type; > __use_cache<__cache_type> __uc; > const locale& __loc = __io._M_getloc(); > const __cache_type* __lc = __uc(__loc); > const _CharT* __lit = __lc->_M_atoms_in; > char_type __c = char_type(); > > > const ios_base::fmtflags __basefield = __io.flags() > & ios_base::basefield; > const bool __oct = __basefield == ios_base::oct; > int __base = __oct ? 8 : (__basefield == ios_base::hex ? 16 : 10); > > > bool __testeof = __beg == __end; > > > bool __negative = false; > if (!__testeof) > { > __c = *__beg; > if (__gnu_cxx::__numeric_traits<_ValueT>::__is_signed) > __negative = __c == __lit[__num_base::_S_iminus]; > if ((__negative || __c == __lit[__num_base::_S_iplus]) > && !(__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) > && !(__c == __lc->_M_decimal_point)) > { > if (++__beg != __end) > __c = *__beg; > else > __testeof = true; > } > } > > > > bool __found_zero = false; > int __sep_pos = 0; > while (!__testeof) > { > if ((__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) > || __c == __lc->_M_decimal_point) > break; > else if (__c == __lit[__num_base::_S_izero] > && (!__found_zero || __base == 10)) > { > __found_zero = true; > ++__sep_pos; > if (__basefield == 0) > __base = 8; > if (__base == 8) > __sep_pos = 0; > } > else if (__found_zero > && (__c == __lit[__num_base::_S_ix] > || __c == __lit[__num_base::_S_iX])) > { > if (__basefield == 0) > __base = 16; > if (__base == 16) > { > __found_zero = false; > __sep_pos = 0; > } > else > break; > } > else > break; > > if (++__beg != __end) > { > __c = *__beg; > if (!__found_zero) > break; > } > else > __testeof = true; > } > > > > const size_t __len = (__base == 16 ? __num_base::_S_iend > - __num_base::_S_izero : __base); > > > string __found_grouping; > if (__lc->_M_use_grouping) > __found_grouping.reserve(32); > bool __testfail = false; > const __unsigned_type __max = __negative > ? -__gnu_cxx::__numeric_traits<_ValueT>::__min > : __gnu_cxx::__numeric_traits<_ValueT>::__max; > const __unsigned_type __smax = __max / __base; > __unsigned_type __result = 0; > int __digit = 0; > const char_type* __lit_zero = __lit + __num_base::_S_izero; > > if (!__lc->_M_allocated) > > while (!__testeof) > { > __digit = _M_find(__lit_zero, __len, __c); > if (__digit == -1) > break; > > if (__result > __smax) > __testfail = true; > else > { > __result *= __base; > __testfail |= __result > __max - __digit; > __result += __digit; > ++__sep_pos; > } > > if (++__beg != __end) > __c = *__beg; > else > __testeof = true; > } > else > while (!__testeof) > { > > > if (__lc->_M_use_grouping && __c == __lc->_M_thousands_sep) > { > > > if (__sep_pos) > { > __found_grouping += static_cast<char>(__sep_pos); > __sep_pos = 0; > } > else > { > __testfail = true; > break; > } > } > else if (__c == __lc->_M_decimal_point) > break; > else > { > const char_type* __q = > __traits_type::find(__lit_zero, __len, __c); > if (!__q) > break; > > __digit = __q - __lit_zero; > if (__digit > 15) > __digit -= 6; > if (__result > __smax) > __testfail = true; > else > { > __result *= __base; > __testfail |= __result > __max - __digit; > __result += __digit; > ++__sep_pos; > } > } > > if (++__beg != __end) > __c = *__beg; > else > __testeof = true; > } > > > > if (__found_grouping.size()) > { > > __found_grouping += static_cast<char>(__sep_pos); > > if (!std::__verify_grouping(__lc->_M_grouping, > __lc->_M_grouping_size, > __found_grouping)) > __err |= ios_base::failbit; > } > > if (!__testfail && (__sep_pos || __found_zero > || __found_grouping.size())) > __v = __negative ? -__result : __result; > else > __err |= ios_base::failbit; > > if (__testeof) > __err |= ios_base::eofbit; > return __beg; > } > > > > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > do_get(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, bool& __v) const > { > if (!(__io.flags() & ios_base::boolalpha)) > { > > > > long __l = -1; > __beg = _M_extract_int(__beg, __end, __io, __err, __l); > if (__l == 0 || __l == 1) > __v = bool(__l); > else > __err |= ios_base::failbit; > } > else > { > > typedef __numpunct_cache<_CharT> __cache_type; > __use_cache<__cache_type> __uc; > const locale& __loc = __io._M_getloc(); > const __cache_type* __lc = __uc(__loc); > > bool __testf = true; > bool __testt = true; > size_t __n; > bool __testeof = __beg == __end; > for (__n = 0; !__testeof; ++__n) > { > const char_type __c = *__beg; > > if (__testf) > { > if (__n < __lc->_M_falsename_size) > __testf = __c == __lc->_M_falsename[__n]; > else > break; > } > > if (__testt) > { > if (__n < __lc->_M_truename_size) > __testt = __c == __lc->_M_truename[__n]; > else > break; > } > > if (!__testf && !__testt) > break; > > if (++__beg == __end) > __testeof = true; > } > if (__testf && __n == __lc->_M_falsename_size) > __v = false; > else if (__testt && __n == __lc->_M_truename_size) > __v = true; > else > __err |= ios_base::failbit; > > if (__testeof) > __err |= ios_base::eofbit; > } > return __beg; > } > > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > do_get(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, long& __v) const > { return _M_extract_int(__beg, __end, __io, __err, __v); } > > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > do_get(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, unsigned short& __v) const > { return _M_extract_int(__beg, __end, __io, __err, __v); } > > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > do_get(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, unsigned int& __v) const > { return _M_extract_int(__beg, __end, __io, __err, __v); } > > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > do_get(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, unsigned long& __v) const > { return _M_extract_int(__beg, __end, __io, __err, __v); } > > > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > do_get(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, long long& __v) const > { return _M_extract_int(__beg, __end, __io, __err, __v); } > > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > do_get(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, unsigned long long& __v) const > { return _M_extract_int(__beg, __end, __io, __err, __v); } > > > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > do_get(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, float& __v) const > { > string __xtrc; > __xtrc.reserve(32); > __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); > std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); > return __beg; > } > > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > do_get(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, double& __v) const > { > string __xtrc; > __xtrc.reserve(32); > __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); > std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); > return __beg; > } ># 717 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.tcc" 3 > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > do_get(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, long double& __v) const > { > string __xtrc; > __xtrc.reserve(32); > __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc); > std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale()); > return __beg; > } > > template<typename _CharT, typename _InIter> > _InIter > num_get<_CharT, _InIter>:: > do_get(iter_type __beg, iter_type __end, ios_base& __io, > ios_base::iostate& __err, void*& __v) const > { > > typedef ios_base::fmtflags fmtflags; > const fmtflags __fmt = __io.flags(); > __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex); > > typedef __gnu_cxx::__conditional_type<(sizeof(void*) > <= sizeof(unsigned long)), > unsigned long, unsigned long long>::__type _UIntPtrType; > > _UIntPtrType __ul; > __beg = _M_extract_int(__beg, __end, __io, __err, __ul); > > > __io.flags(__fmt); > > if (!(__err & ios_base::failbit)) > __v = reinterpret_cast<void*>(__ul); > return __beg; > } > > > > template<typename _CharT, typename _OutIter> > void > num_put<_CharT, _OutIter>:: > _M_pad(_CharT __fill, streamsize __w, ios_base& __io, > _CharT* __new, const _CharT* __cs, int& __len) const > { > > > __pad<_CharT, char_traits<_CharT> >::_S_pad(__io, __fill, __new, > __cs, __w, __len); > __len = static_cast<int>(__w); > } > > > > template<typename _CharT, typename _ValueT> > int > __int_to_char(_CharT* __bufend, _ValueT __v, const _CharT* __lit, > ios_base::fmtflags __flags, bool __dec) > { > _CharT* __buf = __bufend; > if (__builtin_expect(__dec, true)) > { > > do > { > *--__buf = __lit[(__v % 10) + __num_base::_S_odigits]; > __v /= 10; > } > while (__v != 0); > } > else if ((__flags & ios_base::basefield) == ios_base::oct) > { > > do > { > *--__buf = __lit[(__v & 0x7) + __num_base::_S_odigits]; > __v >>= 3; > } > while (__v != 0); > } > else > { > > const bool __uppercase = __flags & ios_base::uppercase; > const int __case_offset = __uppercase ? __num_base::_S_oudigits > : __num_base::_S_odigits; > do > { > *--__buf = __lit[(__v & 0xf) + __case_offset]; > __v >>= 4; > } > while (__v != 0); > } > return __bufend - __buf; > } > > > > template<typename _CharT, typename _OutIter> > void > num_put<_CharT, _OutIter>:: > _M_group_int(const char* __grouping, size_t __grouping_size, _CharT __sep, > ios_base&, _CharT* __new, _CharT* __cs, int& __len) const > { > _CharT* __p = std::__add_grouping(__new, __sep, __grouping, > __grouping_size, __cs, __cs + __len); > __len = __p - __new; > } > > template<typename _CharT, typename _OutIter> > template<typename _ValueT> > _OutIter > num_put<_CharT, _OutIter>:: > _M_insert_int(_OutIter __s, ios_base& __io, _CharT __fill, > _ValueT __v) const > { > using __gnu_cxx::__add_unsigned; > typedef typename __add_unsigned<_ValueT>::__type __unsigned_type; > typedef __numpunct_cache<_CharT> __cache_type; > __use_cache<__cache_type> __uc; > const locale& __loc = __io._M_getloc(); > const __cache_type* __lc = __uc(__loc); > const _CharT* __lit = __lc->_M_atoms_out; > const ios_base::fmtflags __flags = __io.flags(); > > > const int __ilen = 5 * sizeof(_ValueT); > _CharT* __cs = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) > * __ilen)); > > > > const ios_base::fmtflags __basefield = __flags & ios_base::basefield; > const bool __dec = (__basefield != ios_base::oct > && __basefield != ios_base::hex); > const __unsigned_type __u = ((__v > 0 || !__dec) > ? __unsigned_type(__v) > : -__unsigned_type(__v)); > int __len = __int_to_char(__cs + __ilen, __u, __lit, __flags, __dec); > __cs += __ilen - __len; > > > if (__lc->_M_use_grouping) > { > > > _CharT* __cs2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) > * (__len + 1) > * 2)); > _M_group_int(__lc->_M_grouping, __lc->_M_grouping_size, > __lc->_M_thousands_sep, __io, __cs2 + 2, __cs, __len); > __cs = __cs2 + 2; > } > > > if (__builtin_expect(__dec, true)) > { > > if (__v >= 0) > { > if (bool(__flags & ios_base::showpos) > && __gnu_cxx::__numeric_traits<_ValueT>::__is_signed) > *--__cs = __lit[__num_base::_S_oplus], ++__len; > } > else > *--__cs = __lit[__num_base::_S_ominus], ++__len; > } > else if (bool(__flags & ios_base::showbase) && __v) > { > if (__basefield == ios_base::oct) > *--__cs = __lit[__num_base::_S_odigits], ++__len; > else > { > > const bool __uppercase = __flags & ios_base::uppercase; > *--__cs = __lit[__num_base::_S_ox + __uppercase]; > > *--__cs = __lit[__num_base::_S_odigits]; > __len += 2; > } > } > > > const streamsize __w = __io.width(); > if (__w > static_cast<streamsize>(__len)) > { > _CharT* __cs3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) > * __w)); > _M_pad(__fill, __w, __io, __cs3, __cs, __len); > __cs = __cs3; > } > __io.width(0); > > > > return std::__write(__s, __cs, __len); > } > > template<typename _CharT, typename _OutIter> > void > num_put<_CharT, _OutIter>:: > _M_group_float(const char* __grouping, size_t __grouping_size, > _CharT __sep, const _CharT* __p, _CharT* __new, > _CharT* __cs, int& __len) const > { > > > > const int __declen = __p ? __p - __cs : __len; > _CharT* __p2 = std::__add_grouping(__new, __sep, __grouping, > __grouping_size, > __cs, __cs + __declen); > > > int __newlen = __p2 - __new; > if (__p) > { > char_traits<_CharT>::copy(__p2, __p, __len - __declen); > __newlen += __len - __declen; > } > __len = __newlen; > } ># 952 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.tcc" 3 > template<typename _CharT, typename _OutIter> > template<typename _ValueT> > _OutIter > num_put<_CharT, _OutIter>:: > _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod, > _ValueT __v) const > { > typedef __numpunct_cache<_CharT> __cache_type; > __use_cache<__cache_type> __uc; > const locale& __loc = __io._M_getloc(); > const __cache_type* __lc = __uc(__loc); > > > const streamsize __prec = __io.precision() < 0 ? 6 : __io.precision(); > > const int __max_digits = > __gnu_cxx::__numeric_traits<_ValueT>::__digits10; > > > int __len; > > char __fbuf[16]; > __num_base::_S_format_float(__io, __fbuf, __mod); > > > > > int __cs_size = __max_digits * 3; > char* __cs = static_cast<char*>(__builtin_alloca(__cs_size)); > __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, > __fbuf, __prec, __v); > > > if (__len >= __cs_size) > { > __cs_size = __len + 1; > __cs = static_cast<char*>(__builtin_alloca(__cs_size)); > __len = std::__convert_from_v(_S_get_c_locale(), __cs, __cs_size, > __fbuf, __prec, __v); > } ># 1013 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.tcc" 3 > const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); > > _CharT* __ws = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) > * __len)); > __ctype.widen(__cs, __cs + __len, __ws); > > > _CharT* __wp = 0; > const char* __p = char_traits<char>::find(__cs, __len, '.'); > if (__p) > { > __wp = __ws + (__p - __cs); > *__wp = __lc->_M_decimal_point; > } > > > > > if (__lc->_M_use_grouping > && (__wp || __len < 3 || (__cs[1] <= '9' && __cs[2] <= '9' > && __cs[1] >= '0' && __cs[2] >= '0'))) > { > > > _CharT* __ws2 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) > * __len * 2)); > > streamsize __off = 0; > if (__cs[0] == '-' || __cs[0] == '+') > { > __off = 1; > __ws2[0] = __ws[0]; > __len -= 1; > } > > _M_group_float(__lc->_M_grouping, __lc->_M_grouping_size, > __lc->_M_thousands_sep, __wp, __ws2 + __off, > __ws + __off, __len); > __len += __off; > > __ws = __ws2; > } > > > const streamsize __w = __io.width(); > if (__w > static_cast<streamsize>(__len)) > { > _CharT* __ws3 = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) > * __w)); > _M_pad(__fill, __w, __io, __ws3, __ws, __len); > __ws = __ws3; > } > __io.width(0); > > > > return std::__write(__s, __ws, __len); > } > > template<typename _CharT, typename _OutIter> > _OutIter > num_put<_CharT, _OutIter>:: > do_put(iter_type __s, ios_base& __io, char_type __fill, bool __v) const > { > const ios_base::fmtflags __flags = __io.flags(); > if ((__flags & ios_base::boolalpha) == 0) > { > const long __l = __v; > __s = _M_insert_int(__s, __io, __fill, __l); > } > else > { > typedef __numpunct_cache<_CharT> __cache_type; > __use_cache<__cache_type> __uc; > const locale& __loc = __io._M_getloc(); > const __cache_type* __lc = __uc(__loc); > > const _CharT* __name = __v ? __lc->_M_truename > : __lc->_M_falsename; > int __len = __v ? __lc->_M_truename_size > : __lc->_M_falsename_size; > > const streamsize __w = __io.width(); > if (__w > static_cast<streamsize>(__len)) > { > _CharT* __cs > = static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) > * __w)); > _M_pad(__fill, __w, __io, __cs, __name, __len); > __name = __cs; > } > __io.width(0); > __s = std::__write(__s, __name, __len); > } > return __s; > } > > template<typename _CharT, typename _OutIter> > _OutIter > num_put<_CharT, _OutIter>:: > do_put(iter_type __s, ios_base& __io, char_type __fill, long __v) const > { return _M_insert_int(__s, __io, __fill, __v); } > > template<typename _CharT, typename _OutIter> > _OutIter > num_put<_CharT, _OutIter>:: > do_put(iter_type __s, ios_base& __io, char_type __fill, > unsigned long __v) const > { return _M_insert_int(__s, __io, __fill, __v); } > > > template<typename _CharT, typename _OutIter> > _OutIter > num_put<_CharT, _OutIter>:: > do_put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const > { return _M_insert_int(__s, __io, __fill, __v); } > > template<typename _CharT, typename _OutIter> > _OutIter > num_put<_CharT, _OutIter>:: > do_put(iter_type __s, ios_base& __io, char_type __fill, > unsigned long long __v) const > { return _M_insert_int(__s, __io, __fill, __v); } > > > template<typename _CharT, typename _OutIter> > _OutIter > num_put<_CharT, _OutIter>:: > do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const > { return _M_insert_float(__s, __io, __fill, char(), __v); } ># 1152 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.tcc" 3 > template<typename _CharT, typename _OutIter> > _OutIter > num_put<_CharT, _OutIter>:: > do_put(iter_type __s, ios_base& __io, char_type __fill, > long double __v) const > { return _M_insert_float(__s, __io, __fill, 'L', __v); } > > template<typename _CharT, typename _OutIter> > _OutIter > num_put<_CharT, _OutIter>:: > do_put(iter_type __s, ios_base& __io, char_type __fill, > const void* __v) const > { > const ios_base::fmtflags __flags = __io.flags(); > const ios_base::fmtflags __fmt = ~(ios_base::basefield > | ios_base::uppercase > | ios_base::internal); > __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase)); > > typedef __gnu_cxx::__conditional_type<(sizeof(const void*) > <= sizeof(unsigned long)), > unsigned long, unsigned long long>::__type _UIntPtrType; > > __s = _M_insert_int(__s, __io, __fill, > reinterpret_cast<_UIntPtrType>(__v)); > __io.flags(__flags); > return __s; > } > > ># 1190 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.tcc" 3 > template<typename _CharT, typename _Traits> > void > __pad<_CharT, _Traits>::_S_pad(ios_base& __io, _CharT __fill, > _CharT* __news, const _CharT* __olds, > const streamsize __newlen, > const streamsize __oldlen) > { > const size_t __plen = static_cast<size_t>(__newlen - __oldlen); > const ios_base::fmtflags __adjust = __io.flags() & ios_base::adjustfield; > > > if (__adjust == ios_base::left) > { > _Traits::copy(__news, __olds, __oldlen); > _Traits::assign(__news + __oldlen, __plen, __fill); > return; > } > > size_t __mod = 0; > if (__adjust == ios_base::internal) > { > > > > const locale& __loc = __io._M_getloc(); > const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc); > > if (__ctype.widen('-') == __olds[0] > || __ctype.widen('+') == __olds[0]) > { > __news[0] = __olds[0]; > __mod = 1; > ++__news; > } > else if (__ctype.widen('0') == __olds[0] > && __oldlen > 1 > && (__ctype.widen('x') == __olds[1] > || __ctype.widen('X') == __olds[1])) > { > __news[0] = __olds[0]; > __news[1] = __olds[1]; > __mod = 2; > __news += 2; > } > > } > _Traits::assign(__news, __plen, __fill); > _Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod); > } > > template<typename _CharT> > _CharT* > __add_grouping(_CharT* __s, _CharT __sep, > const char* __gbeg, size_t __gsize, > const _CharT* __first, const _CharT* __last) > { > size_t __idx = 0; > size_t __ctr = 0; > > while (__last - __first > __gbeg[__idx] > && static_cast<signed char>(__gbeg[__idx]) > 0) > { > __last -= __gbeg[__idx]; > __idx < __gsize - 1 ? ++__idx : ++__ctr; > } > > while (__first != __last) > *__s++ = *__first++; > > while (__ctr--) > { > *__s++ = __sep; > for (char __i = __gbeg[__idx]; __i > 0; --__i) > *__s++ = *__first++; > } > > while (__idx--) > { > *__s++ = __sep; > for (char __i = __gbeg[__idx]; __i > 0; --__i) > *__s++ = *__first++; > } > > return __s; > } > > > > > > extern template class numpunct<char>; > extern template class numpunct_byname<char>; > extern template class num_get<char>; > extern template class num_put<char>; > extern template class ctype_byname<char>; > > extern template > const numpunct<char>& > use_facet<numpunct<char> >(const locale&); > > extern template > const num_put<char>& > use_facet<num_put<char> >(const locale&); > > extern template > const num_get<char>& > use_facet<num_get<char> >(const locale&); > > extern template > bool > has_facet<ctype<char> >(const locale&); > > extern template > bool > has_facet<numpunct<char> >(const locale&); > > extern template > bool > has_facet<num_put<char> >(const locale&); > > extern template > bool > has_facet<num_get<char> >(const locale&); > > > extern template class numpunct<wchar_t>; > extern template class numpunct_byname<wchar_t>; > extern template class num_get<wchar_t>; > extern template class num_put<wchar_t>; > extern template class ctype_byname<wchar_t>; > > extern template > const numpunct<wchar_t>& > use_facet<numpunct<wchar_t> >(const locale&); > > extern template > const num_put<wchar_t>& > use_facet<num_put<wchar_t> >(const locale&); > > extern template > const num_get<wchar_t>& > use_facet<num_get<wchar_t> >(const locale&); > > extern template > bool > has_facet<ctype<wchar_t> >(const locale&); > > extern template > bool > has_facet<numpunct<wchar_t> >(const locale&); > > extern template > bool > has_facet<num_put<wchar_t> >(const locale&); > > extern template > bool > has_facet<num_get<wchar_t> >(const locale&); > > > >} ># 2636 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/locale_facets.h" 2 3 ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 2 3 > > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _Facet> > inline const _Facet& > __check_facet(const _Facet* __f) > { > if (!__f) > __throw_bad_cast(); > return *__f; > } ># 65 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > template<typename _CharT, typename _Traits> > class basic_ios : public ios_base > { > public: > > > > > > > typedef _CharT char_type; > typedef typename _Traits::int_type int_type; > typedef typename _Traits::pos_type pos_type; > typedef typename _Traits::off_type off_type; > typedef _Traits traits_type; > > > > > > > typedef ctype<_CharT> __ctype_type; > typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > > __num_put_type; > typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > > __num_get_type; > > > > protected: > basic_ostream<_CharT, _Traits>* _M_tie; > mutable char_type _M_fill; > mutable bool _M_fill_init; > basic_streambuf<_CharT, _Traits>* _M_streambuf; > > > const __ctype_type* _M_ctype; > > const __num_put_type* _M_num_put; > > const __num_get_type* _M_num_get; > > public: > > > > > > > > operator void*() const > { return this->fail() ? 0 : const_cast<basic_ios*>(this); } > > bool > operator!() const > { return this->fail(); } ># 130 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > iostate > rdstate() const > { return _M_streambuf_state; } ># 141 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > void > clear(iostate __state = goodbit); > > > > > > > > void > setstate(iostate __state) > { this->clear(this->rdstate() | __state); } > > > > > void > _M_setstate(iostate __state) > { > > > _M_streambuf_state |= __state; > if (this->exceptions() & __state) > throw; > } > > > > > > > > bool > good() const > { return this->rdstate() == 0; } > > > > > > > > bool > eof() const > { return (this->rdstate() & eofbit) != 0; } ># 194 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > bool > fail() const > { return (this->rdstate() & (badbit | failbit)) != 0; } > > > > > > > > bool > bad() const > { return (this->rdstate() & badbit) != 0; } ># 215 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > iostate > exceptions() const > { return _M_exception; } ># 250 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > void > exceptions(iostate __except) > { > _M_exception = __except; > this->clear(_M_streambuf_state); > } > > > > > > > > explicit > basic_ios(basic_streambuf<_CharT, _Traits>* __sb) > : ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0), > _M_ctype(0), _M_num_put(0), _M_num_get(0) > { this->init(__sb); } > > > > > > > > virtual > ~basic_ios() { } ># 288 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > basic_ostream<_CharT, _Traits>* > tie() const > { return _M_tie; } ># 300 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > basic_ostream<_CharT, _Traits>* > tie(basic_ostream<_CharT, _Traits>* __tiestr) > { > basic_ostream<_CharT, _Traits>* __old = _M_tie; > _M_tie = __tiestr; > return __old; > } > > > > > > > > basic_streambuf<_CharT, _Traits>* > rdbuf() const > { return _M_streambuf; } ># 340 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > basic_streambuf<_CharT, _Traits>* > rdbuf(basic_streambuf<_CharT, _Traits>* __sb); ># 354 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > basic_ios& > copyfmt(const basic_ios& __rhs); > > > > > > > > char_type > fill() const > { > if (!_M_fill_init) > { > _M_fill = this->widen(' '); > _M_fill_init = true; > } > return _M_fill; > } ># 383 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > char_type > fill(char_type __ch) > { > char_type __old = this->fill(); > _M_fill = __ch; > return __old; > } ># 403 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > locale > imbue(const locale& __loc); ># 423 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > char > narrow(char_type __c, char __dfault) const > { return __check_facet(_M_ctype).narrow(__c, __dfault); } ># 442 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 3 > char_type > widen(char __c) const > { return __check_facet(_M_ctype).widen(__c); } > > protected: > > > > > > > > basic_ios() > : ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false), > _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0) > { } > > > > > > > > void > init(basic_streambuf<_CharT, _Traits>* __sb); > > void > _M_cache_locale(const locale& __loc); > }; > >} > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.tcc" 1 3 ># 39 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.tcc" 3 > ># 40 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.tcc" 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _CharT, typename _Traits> > void > basic_ios<_CharT, _Traits>::clear(iostate __state) > { > if (this->rdbuf()) > _M_streambuf_state = __state; > else > _M_streambuf_state = __state | badbit; > if (this->exceptions() & this->rdstate()) > __throw_ios_failure(("basic_ios::clear")); > } > > template<typename _CharT, typename _Traits> > basic_streambuf<_CharT, _Traits>* > basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __sb) > { > basic_streambuf<_CharT, _Traits>* __old = _M_streambuf; > _M_streambuf = __sb; > this->clear(); > return __old; > } > > template<typename _CharT, typename _Traits> > basic_ios<_CharT, _Traits>& > basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs) > { > > > if (this != &__rhs) > { > > > > > _Words* __words = (__rhs._M_word_size <= _S_local_word_size) ? > _M_local_word : new _Words[__rhs._M_word_size]; > > > _Callback_list* __cb = __rhs._M_callbacks; > if (__cb) > __cb->_M_add_reference(); > _M_call_callbacks(erase_event); > if (_M_word != _M_local_word) > { > delete [] _M_word; > _M_word = 0; > } > _M_dispose_callbacks(); > > > _M_callbacks = __cb; > for (int __i = 0; __i < __rhs._M_word_size; ++__i) > __words[__i] = __rhs._M_word[__i]; > _M_word = __words; > _M_word_size = __rhs._M_word_size; > > this->flags(__rhs.flags()); > this->width(__rhs.width()); > this->precision(__rhs.precision()); > this->tie(__rhs.tie()); > this->fill(__rhs.fill()); > _M_ios_locale = __rhs.getloc(); > _M_cache_locale(_M_ios_locale); > > _M_call_callbacks(copyfmt_event); > > > this->exceptions(__rhs.exceptions()); > } > return *this; > } > > > template<typename _CharT, typename _Traits> > locale > basic_ios<_CharT, _Traits>::imbue(const locale& __loc) > { > locale __old(this->getloc()); > ios_base::imbue(__loc); > _M_cache_locale(__loc); > if (this->rdbuf() != 0) > this->rdbuf()->pubimbue(__loc); > return __old; > } > > template<typename _CharT, typename _Traits> > void > basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) > { > > ios_base::_M_init(); > > > _M_cache_locale(_M_ios_locale); ># 150 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.tcc" 3 > _M_fill = _CharT(); > _M_fill_init = false; > > _M_tie = 0; > _M_exception = goodbit; > _M_streambuf = __sb; > _M_streambuf_state = __sb ? goodbit : badbit; > } > > template<typename _CharT, typename _Traits> > void > basic_ios<_CharT, _Traits>::_M_cache_locale(const locale& __loc) > { > if (__builtin_expect(has_facet<__ctype_type>(__loc), true)) > _M_ctype = &use_facet<__ctype_type>(__loc); > else > _M_ctype = 0; > > if (__builtin_expect(has_facet<__num_put_type>(__loc), true)) > _M_num_put = &use_facet<__num_put_type>(__loc); > else > _M_num_put = 0; > > if (__builtin_expect(has_facet<__num_get_type>(__loc), true)) > _M_num_get = &use_facet<__num_get_type>(__loc); > else > _M_num_get = 0; > } > > > > > > extern template class basic_ios<char>; > > > extern template class basic_ios<wchar_t>; > > > >} ># 476 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/basic_ios.h" 2 3 ># 51 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ios" 2 3 ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 2 3 > > > > > > >namespace std __attribute__ ((__visibility__ ("default"))) { ># 62 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > template<typename _CharT, typename _Traits> > class basic_ostream : virtual public basic_ios<_CharT, _Traits> > { > public: > > typedef _CharT char_type; > typedef typename _Traits::int_type int_type; > typedef typename _Traits::pos_type pos_type; > typedef typename _Traits::off_type off_type; > typedef _Traits traits_type; > > > typedef basic_streambuf<_CharT, _Traits> __streambuf_type; > typedef basic_ios<_CharT, _Traits> __ios_type; > typedef basic_ostream<_CharT, _Traits> __ostream_type; > typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > > __num_put_type; > typedef ctype<_CharT> __ctype_type; ># 89 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > explicit > basic_ostream(__streambuf_type* __sb) > { this->init(__sb); } > > > > > > > virtual > ~basic_ostream() { } > > > class sentry; > friend class sentry; ># 115 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > __ostream_type& > operator<<(__ostream_type& (*__pf)(__ostream_type&)) > { > > > > return __pf(*this); > } > > __ostream_type& > operator<<(__ios_type& (*__pf)(__ios_type&)) > { > > > > __pf(*this); > return *this; > } > > __ostream_type& > operator<<(ios_base& (*__pf) (ios_base&)) > { > > > > __pf(*this); > return *this; > } ># 172 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > __ostream_type& > operator<<(long __n) > { return _M_insert(__n); } > > __ostream_type& > operator<<(unsigned long __n) > { return _M_insert(__n); } > > __ostream_type& > operator<<(bool __n) > { return _M_insert(__n); } > > __ostream_type& > operator<<(short __n); > > __ostream_type& > operator<<(unsigned short __n) > { > > > return _M_insert(static_cast<unsigned long>(__n)); > } > > __ostream_type& > operator<<(int __n); > > __ostream_type& > operator<<(unsigned int __n) > { > > > return _M_insert(static_cast<unsigned long>(__n)); > } > > > __ostream_type& > operator<<(long long __n) > { return _M_insert(__n); } > > __ostream_type& > operator<<(unsigned long long __n) > { return _M_insert(__n); } > > > __ostream_type& > operator<<(double __f) > { return _M_insert(__f); } > > __ostream_type& > operator<<(float __f) > { > > > return _M_insert(static_cast<double>(__f)); > } > > __ostream_type& > operator<<(long double __f) > { return _M_insert(__f); } > > __ostream_type& > operator<<(const void* __p) > { return _M_insert(__p); } ># 257 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > __ostream_type& > operator<<(__streambuf_type* __sb); ># 290 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > __ostream_type& > put(char_type __c); > > > void > _M_write(const char_type* __s, streamsize __n) > { > const streamsize __put = this->rdbuf()->sputn(__s, __n); > if (__put != __n) > this->setstate(ios_base::badbit); > } ># 318 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > __ostream_type& > write(const char_type* __s, streamsize __n); ># 331 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > __ostream_type& > flush(); ># 342 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > pos_type > tellp(); ># 353 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > __ostream_type& > seekp(pos_type); ># 365 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > __ostream_type& > seekp(off_type, ios_base::seekdir); > > protected: > explicit > basic_ostream() { } > > template<typename _ValueT> > __ostream_type& > _M_insert(_ValueT __v); > }; ># 387 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > template <typename _CharT, typename _Traits> > class basic_ostream<_CharT, _Traits>::sentry > { > > bool _M_ok; > basic_ostream<_CharT, _Traits>& _M_os; > > public: ># 406 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > explicit > sentry(basic_ostream<_CharT, _Traits>& __os); ># 416 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > ~sentry() > { > > if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) > { > > if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1) > _M_os.setstate(ios_base::badbit); > } > } ># 434 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > operator bool() const > { return _M_ok; } > }; ># 455 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > template<typename _CharT, typename _Traits> > inline basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c) > { return __ostream_insert(__out, &__c, 1); } > > template<typename _CharT, typename _Traits> > inline basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __out, char __c) > { return (__out << __out.widen(__c)); } > > > template <class _Traits> > inline basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, char __c) > { return __ostream_insert(__out, &__c, 1); } > > > template<class _Traits> > inline basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, signed char __c) > { return (__out << static_cast<char>(__c)); } > > template<class _Traits> > inline basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c) > { return (__out << static_cast<char>(__c)); } ># 497 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > template<typename _CharT, typename _Traits> > inline basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s) > { > if (!__s) > __out.setstate(ios_base::badbit); > else > __ostream_insert(__out, __s, > static_cast<streamsize>(_Traits::length(__s))); > return __out; > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits> & > operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s); > > > template<class _Traits> > inline basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, const char* __s) > { > if (!__s) > __out.setstate(ios_base::badbit); > else > __ostream_insert(__out, __s, > static_cast<streamsize>(_Traits::length(__s))); > return __out; > } > > > template<class _Traits> > inline basic_ostream<char, _Traits>& > operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s) > { return (__out << reinterpret_cast<const char*>(__s)); } > > template<class _Traits> > inline basic_ostream<char, _Traits> & > operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s) > { return (__out << reinterpret_cast<const char*>(__s)); } ># 554 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 3 > template<typename _CharT, typename _Traits> > inline basic_ostream<_CharT, _Traits>& > endl(basic_ostream<_CharT, _Traits>& __os) > { return flush(__os.put(__os.widen('\n'))); } > > > > > > > > template<typename _CharT, typename _Traits> > inline basic_ostream<_CharT, _Traits>& > ends(basic_ostream<_CharT, _Traits>& __os) > { return __os.put(_CharT()); } > > > > > > > template<typename _CharT, typename _Traits> > inline basic_ostream<_CharT, _Traits>& > flush(basic_ostream<_CharT, _Traits>& __os) > { return __os.flush(); } > >} > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ostream.tcc" 1 3 ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ostream.tcc" 3 > ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/ostream.tcc" 3 > > > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>::sentry:: > sentry(basic_ostream<_CharT, _Traits>& __os) > : _M_ok(false), _M_os(__os) > { > > if (__os.tie() && __os.good()) > __os.tie()->flush(); > > if (__os.good()) > _M_ok = true; > else > __os.setstate(ios_base::failbit); > } > > template<typename _CharT, typename _Traits> > template<typename _ValueT> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > _M_insert(_ValueT __v) > { > sentry __cerb(*this); > if (__cerb) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > const __num_put_type& __np = __check_facet(this->_M_num_put); > if (__np.put(*this, *this, this->fill(), __v).failed()) > __err |= ios_base::badbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return *this; > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > operator<<(short __n) > { > > > const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; > if (__fmt == ios_base::oct || __fmt == ios_base::hex) > return _M_insert(static_cast<long>(static_cast<unsigned short>(__n))); > else > return _M_insert(static_cast<long>(__n)); > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > operator<<(int __n) > { > > > const ios_base::fmtflags __fmt = this->flags() & ios_base::basefield; > if (__fmt == ios_base::oct || __fmt == ios_base::hex) > return _M_insert(static_cast<long>(static_cast<unsigned int>(__n))); > else > return _M_insert(static_cast<long>(__n)); > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > operator<<(__streambuf_type* __sbin) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > sentry __cerb(*this); > if (__cerb && __sbin) > { > try > { > if (!__copy_streambufs(__sbin, this->rdbuf())) > __err |= ios_base::failbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::failbit); } > } > else if (!__sbin) > __err |= ios_base::badbit; > if (__err) > this->setstate(__err); > return *this; > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > put(char_type __c) > { > > > > > > > sentry __cerb(*this); > if (__cerb) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > const int_type __put = this->rdbuf()->sputc(__c); > if (traits_type::eq_int_type(__put, traits_type::eof())) > __err |= ios_base::badbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return *this; > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > write(const _CharT* __s, streamsize __n) > { > > > > > > > > sentry __cerb(*this); > if (__cerb) > { > try > { _M_write(__s, __n); } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > } > return *this; > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > flush() > { > > > > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > if (this->rdbuf() && this->rdbuf()->pubsync() == -1) > __err |= ios_base::badbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > return *this; > } > > template<typename _CharT, typename _Traits> > typename basic_ostream<_CharT, _Traits>::pos_type > basic_ostream<_CharT, _Traits>:: > tellp() > { > pos_type __ret = pos_type(-1); > try > { > if (!this->fail()) > __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out); > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > return __ret; > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > seekp(pos_type __pos) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > if (!this->fail()) > { > > > const pos_type __p = this->rdbuf()->pubseekpos(__pos, > ios_base::out); > > > if (__p == pos_type(off_type(-1))) > __err |= ios_base::failbit; > } > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > return *this; > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > basic_ostream<_CharT, _Traits>:: > seekp(off_type __off, ios_base::seekdir __dir) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > if (!this->fail()) > { > > > const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, > ios_base::out); > > > if (__p == pos_type(off_type(-1))) > __err |= ios_base::failbit; > } > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > return *this; > } > > template<typename _CharT, typename _Traits> > basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __out, const char* __s) > { > if (!__s) > __out.setstate(ios_base::badbit); > else > { > > > const size_t __clen = char_traits<char>::length(__s); > try > { > struct __ptr_guard > { > _CharT *__p; > __ptr_guard (_CharT *__ip): __p(__ip) { } > ~__ptr_guard() { delete[] __p; } > _CharT* __get() { return __p; } > } __pg (new _CharT[__clen]); > > _CharT *__ws = __pg.__get(); > for (size_t __i = 0; __i < __clen; ++__i) > __ws[__i] = __out.widen(__s[__i]); > __ostream_insert(__out, __ws, __clen); > } > catch(__cxxabiv1::__forced_unwind&) > { > __out._M_setstate(ios_base::badbit); > throw; > } > catch(...) > { __out._M_setstate(ios_base::badbit); } > } > return __out; > } > > > > > > extern template class basic_ostream<char>; > extern template ostream& endl(ostream&); > extern template ostream& ends(ostream&); > extern template ostream& flush(ostream&); > extern template ostream& operator<<(ostream&, char); > extern template ostream& operator<<(ostream&, unsigned char); > extern template ostream& operator<<(ostream&, signed char); > extern template ostream& operator<<(ostream&, const char*); > extern template ostream& operator<<(ostream&, const unsigned char*); > extern template ostream& operator<<(ostream&, const signed char*); > > extern template ostream& ostream::_M_insert(long); > extern template ostream& ostream::_M_insert(unsigned long); > extern template ostream& ostream::_M_insert(bool); > > extern template ostream& ostream::_M_insert(long long); > extern template ostream& ostream::_M_insert(unsigned long long); > > extern template ostream& ostream::_M_insert(double); > extern template ostream& ostream::_M_insert(long double); > extern template ostream& ostream::_M_insert(const void*); > > > extern template class basic_ostream<wchar_t>; > extern template wostream& endl(wostream&); > extern template wostream& ends(wostream&); > extern template wostream& flush(wostream&); > extern template wostream& operator<<(wostream&, wchar_t); > extern template wostream& operator<<(wostream&, char); > extern template wostream& operator<<(wostream&, const wchar_t*); > extern template wostream& operator<<(wostream&, const char*); > > extern template wostream& wostream::_M_insert(long); > extern template wostream& wostream::_M_insert(unsigned long); > extern template wostream& wostream::_M_insert(bool); > > extern template wostream& wostream::_M_insert(long long); > extern template wostream& wostream::_M_insert(unsigned long long); > > extern template wostream& wostream::_M_insert(double); > extern template wostream& wostream::_M_insert(long double); > extern template wostream& wostream::_M_insert(const void*); > > > >} ># 584 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/ostream" 2 3 ># 46 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iostream" 2 3 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 1 3 ># 43 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > > > > >namespace std __attribute__ ((__visibility__ ("default"))) { ># 58 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > template<typename _CharT, typename _Traits> > class basic_istream : virtual public basic_ios<_CharT, _Traits> > { > public: > > typedef _CharT char_type; > typedef typename _Traits::int_type int_type; > typedef typename _Traits::pos_type pos_type; > typedef typename _Traits::off_type off_type; > typedef _Traits traits_type; > > > typedef basic_streambuf<_CharT, _Traits> __streambuf_type; > typedef basic_ios<_CharT, _Traits> __ios_type; > typedef basic_istream<_CharT, _Traits> __istream_type; > typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > > __num_get_type; > typedef ctype<_CharT> __ctype_type; > > protected: > > > > > > streamsize _M_gcount; > > public: ># 94 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > explicit > basic_istream(__streambuf_type* __sb): _M_gcount(streamsize(0)) > { this->init(__sb); } > > > > > > > virtual > ~basic_istream() > { _M_gcount = streamsize(0); } > > > class sentry; > friend class sentry; ># 121 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > operator>>(__istream_type& (*__pf)(__istream_type&)) > { return __pf(*this); } > > __istream_type& > operator>>(__ios_type& (*__pf)(__ios_type&)) > { > __pf(*this); > return *this; > } > > __istream_type& > operator>>(ios_base& (*__pf)(ios_base&)) > { > __pf(*this); > return *this; > } ># 168 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > operator>>(bool& __n) > { return _M_extract(__n); } > > __istream_type& > operator>>(short& __n); > > __istream_type& > operator>>(unsigned short& __n) > { return _M_extract(__n); } > > __istream_type& > operator>>(int& __n); > > __istream_type& > operator>>(unsigned int& __n) > { return _M_extract(__n); } > > __istream_type& > operator>>(long& __n) > { return _M_extract(__n); } > > __istream_type& > operator>>(unsigned long& __n) > { return _M_extract(__n); } > > > __istream_type& > operator>>(long long& __n) > { return _M_extract(__n); } > > __istream_type& > operator>>(unsigned long long& __n) > { return _M_extract(__n); } > > > __istream_type& > operator>>(float& __f) > { return _M_extract(__f); } > > __istream_type& > operator>>(double& __f) > { return _M_extract(__f); } > > __istream_type& > operator>>(long double& __f) > { return _M_extract(__f); } > > __istream_type& > operator>>(void*& __p) > { return _M_extract(__p); } ># 240 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > operator>>(__streambuf_type* __sb); ># 250 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > streamsize > gcount() const > { return _M_gcount; } ># 282 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > int_type > get(); ># 296 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > get(char_type& __c); ># 323 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > get(char_type* __s, streamsize __n, char_type __delim); ># 334 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > get(char_type* __s, streamsize __n) > { return this->get(__s, __n, this->widen('\n')); } ># 357 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > get(__streambuf_type& __sb, char_type __delim); ># 367 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > get(__streambuf_type& __sb) > { return this->get(__sb, this->widen('\n')); } ># 396 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > getline(char_type* __s, streamsize __n, char_type __delim); ># 407 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > getline(char_type* __s, streamsize __n) > { return this->getline(__s, __n, this->widen('\n')); } ># 431 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > ignore(); > > __istream_type& > ignore(streamsize __n); > > __istream_type& > ignore(streamsize __n, int_type __delim); ># 448 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > int_type > peek(); ># 466 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > read(char_type* __s, streamsize __n); ># 485 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > streamsize > readsome(char_type* __s, streamsize __n); ># 501 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > putback(char_type __c); ># 516 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > unget(); ># 534 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > int > sync(); ># 548 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > pos_type > tellg(); ># 563 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > seekg(pos_type); ># 579 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > __istream_type& > seekg(off_type, ios_base::seekdir); > > > protected: > explicit > basic_istream(): _M_gcount(streamsize(0)) { } > > template<typename _ValueT> > __istream_type& > _M_extract(_ValueT& __v); > }; > > > template<> > basic_istream<char>& > basic_istream<char>:: > getline(char_type* __s, streamsize __n, char_type __delim); > > template<> > basic_istream<char>& > basic_istream<char>:: > ignore(streamsize __n); > > template<> > basic_istream<char>& > basic_istream<char>:: > ignore(streamsize __n, int_type __delim); > > > template<> > basic_istream<wchar_t>& > basic_istream<wchar_t>:: > getline(char_type* __s, streamsize __n, char_type __delim); > > template<> > basic_istream<wchar_t>& > basic_istream<wchar_t>:: > ignore(streamsize __n); > > template<> > basic_istream<wchar_t>& > basic_istream<wchar_t>:: > ignore(streamsize __n, int_type __delim); ># 636 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > template<typename _CharT, typename _Traits> > class basic_istream<_CharT, _Traits>::sentry > { > public: > > typedef _Traits traits_type; > typedef basic_streambuf<_CharT, _Traits> __streambuf_type; > typedef basic_istream<_CharT, _Traits> __istream_type; > typedef typename __istream_type::__ctype_type __ctype_type; > typedef typename _Traits::int_type __int_type; ># 668 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > explicit > sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false); ># 678 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > operator bool() const > { return _M_ok; } > > private: > bool _M_ok; > }; ># 698 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c); > > template<class _Traits> > inline basic_istream<char, _Traits>& > operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c) > { return (__in >> reinterpret_cast<char&>(__c)); } > > template<class _Traits> > inline basic_istream<char, _Traits>& > operator>>(basic_istream<char, _Traits>& __in, signed char& __c) > { return (__in >> reinterpret_cast<char&>(__c)); } ># 739 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); > > > template<> > basic_istream<char>& > operator>>(basic_istream<char>& __in, char* __s); > > template<class _Traits> > inline basic_istream<char, _Traits>& > operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s) > { return (__in >> reinterpret_cast<char*>(__s)); } > > template<class _Traits> > inline basic_istream<char, _Traits>& > operator>>(basic_istream<char, _Traits>& __in, signed char* __s) > { return (__in >> reinterpret_cast<char*>(__s)); } ># 766 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > template<typename _CharT, typename _Traits> > class basic_iostream > : public basic_istream<_CharT, _Traits>, > public basic_ostream<_CharT, _Traits> > { > public: > > > > typedef _CharT char_type; > typedef typename _Traits::int_type int_type; > typedef typename _Traits::pos_type pos_type; > typedef typename _Traits::off_type off_type; > typedef _Traits traits_type; > > > typedef basic_istream<_CharT, _Traits> __istream_type; > typedef basic_ostream<_CharT, _Traits> __ostream_type; > > > > > > > > explicit > basic_iostream(basic_streambuf<_CharT, _Traits>* __sb) > : __istream_type(), __ostream_type() > { this->init(__sb); } > > > > > virtual > ~basic_iostream() { } > > protected: > explicit > basic_iostream() : __istream_type(), __ostream_type() > { } > }; ># 829 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 3 > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > ws(basic_istream<_CharT, _Traits>& __is); > >} > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/istream.tcc" 1 3 ># 44 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/istream.tcc" 3 > ># 45 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/istream.tcc" 3 > > > >namespace std __attribute__ ((__visibility__ ("default"))) { > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>::sentry:: > sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > if (__in.good()) > { > if (__in.tie()) > __in.tie()->flush(); > if (!__noskip && bool(__in.flags() & ios_base::skipws)) > { > const __int_type __eof = traits_type::eof(); > __streambuf_type* __sb = __in.rdbuf(); > __int_type __c = __sb->sgetc(); > > const __ctype_type& __ct = __check_facet(__in._M_ctype); > while (!traits_type::eq_int_type(__c, __eof) > && __ct.is(ctype_base::space, > traits_type::to_char_type(__c))) > __c = __sb->snextc(); > > > > > if (traits_type::eq_int_type(__c, __eof)) > __err |= ios_base::eofbit; > } > } > > if (__in.good() && __err == ios_base::goodbit) > _M_ok = true; > else > { > __err |= ios_base::failbit; > __in.setstate(__err); > } > } > > template<typename _CharT, typename _Traits> > template<typename _ValueT> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > _M_extract(_ValueT& __v) > { > sentry __cerb(*this, false); > if (__cerb) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > const __num_get_type& __ng = __check_facet(this->_M_num_get); > __ng.get(*this, 0, *this, __err, __v); > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return *this; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > operator>>(short& __n) > { > > > long __l; > _M_extract(__l); > if (!this->fail()) > { > if (__gnu_cxx::__numeric_traits<short>::__min <= __l > && __l <= __gnu_cxx::__numeric_traits<short>::__max) > __n = short(__l); > else > this->setstate(ios_base::failbit); > } > return *this; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > operator>>(int& __n) > { > > > long __l; > _M_extract(__l); > if (!this->fail()) > { > if (__gnu_cxx::__numeric_traits<int>::__min <= __l > && __l <= __gnu_cxx::__numeric_traits<int>::__max) > __n = int(__l); > else > this->setstate(ios_base::failbit); > } > return *this; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > operator>>(__streambuf_type* __sbout) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > sentry __cerb(*this, false); > if (__cerb && __sbout) > { > try > { > bool __ineof; > if (!__copy_streambufs_eof(this->rdbuf(), __sbout, __ineof)) > __err |= ios_base::failbit; > if (__ineof) > __err |= ios_base::eofbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::failbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::failbit); } > } > else if (!__sbout) > __err |= ios_base::failbit; > if (__err) > this->setstate(__err); > return *this; > } > > template<typename _CharT, typename _Traits> > typename basic_istream<_CharT, _Traits>::int_type > basic_istream<_CharT, _Traits>:: > get(void) > { > const int_type __eof = traits_type::eof(); > int_type __c = __eof; > _M_gcount = 0; > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > sentry __cerb(*this, true); > if (__cerb) > { > try > { > __c = this->rdbuf()->sbumpc(); > > if (!traits_type::eq_int_type(__c, __eof)) > _M_gcount = 1; > else > __err |= ios_base::eofbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > } > if (!_M_gcount) > __err |= ios_base::failbit; > if (__err) > this->setstate(__err); > return __c; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > get(char_type& __c) > { > _M_gcount = 0; > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > sentry __cerb(*this, true); > if (__cerb) > { > try > { > const int_type __cb = this->rdbuf()->sbumpc(); > > if (!traits_type::eq_int_type(__cb, traits_type::eof())) > { > _M_gcount = 1; > __c = traits_type::to_char_type(__cb); > } > else > __err |= ios_base::eofbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > } > if (!_M_gcount) > __err |= ios_base::failbit; > if (__err) > this->setstate(__err); > return *this; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > get(char_type* __s, streamsize __n, char_type __delim) > { > _M_gcount = 0; > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > sentry __cerb(*this, true); > if (__cerb) > { > try > { > const int_type __idelim = traits_type::to_int_type(__delim); > const int_type __eof = traits_type::eof(); > __streambuf_type* __sb = this->rdbuf(); > int_type __c = __sb->sgetc(); > > while (_M_gcount + 1 < __n > && !traits_type::eq_int_type(__c, __eof) > && !traits_type::eq_int_type(__c, __idelim)) > { > *__s++ = traits_type::to_char_type(__c); > ++_M_gcount; > __c = __sb->snextc(); > } > if (traits_type::eq_int_type(__c, __eof)) > __err |= ios_base::eofbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > } > > > if (__n > 0) > *__s = char_type(); > if (!_M_gcount) > __err |= ios_base::failbit; > if (__err) > this->setstate(__err); > return *this; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > get(__streambuf_type& __sb, char_type __delim) > { > _M_gcount = 0; > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > sentry __cerb(*this, true); > if (__cerb) > { > try > { > const int_type __idelim = traits_type::to_int_type(__delim); > const int_type __eof = traits_type::eof(); > __streambuf_type* __this_sb = this->rdbuf(); > int_type __c = __this_sb->sgetc(); > char_type __c2 = traits_type::to_char_type(__c); > > while (!traits_type::eq_int_type(__c, __eof) > && !traits_type::eq_int_type(__c, __idelim) > && !traits_type::eq_int_type(__sb.sputc(__c2), __eof)) > { > ++_M_gcount; > __c = __this_sb->snextc(); > __c2 = traits_type::to_char_type(__c); > } > if (traits_type::eq_int_type(__c, __eof)) > __err |= ios_base::eofbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > } > if (!_M_gcount) > __err |= ios_base::failbit; > if (__err) > this->setstate(__err); > return *this; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > getline(char_type* __s, streamsize __n, char_type __delim) > { > _M_gcount = 0; > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > sentry __cerb(*this, true); > if (__cerb) > { > try > { > const int_type __idelim = traits_type::to_int_type(__delim); > const int_type __eof = traits_type::eof(); > __streambuf_type* __sb = this->rdbuf(); > int_type __c = __sb->sgetc(); > > while (_M_gcount + 1 < __n > && !traits_type::eq_int_type(__c, __eof) > && !traits_type::eq_int_type(__c, __idelim)) > { > *__s++ = traits_type::to_char_type(__c); > __c = __sb->snextc(); > ++_M_gcount; > } > if (traits_type::eq_int_type(__c, __eof)) > __err |= ios_base::eofbit; > else > { > if (traits_type::eq_int_type(__c, __idelim)) > { > __sb->sbumpc(); > ++_M_gcount; > } > else > __err |= ios_base::failbit; > } > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > } > > > if (__n > 0) > *__s = char_type(); > if (!_M_gcount) > __err |= ios_base::failbit; > if (__err) > this->setstate(__err); > return *this; > } > > > > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > ignore(void) > { > _M_gcount = 0; > sentry __cerb(*this, true); > if (__cerb) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > const int_type __eof = traits_type::eof(); > __streambuf_type* __sb = this->rdbuf(); > > if (traits_type::eq_int_type(__sb->sbumpc(), __eof)) > __err |= ios_base::eofbit; > else > _M_gcount = 1; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return *this; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > ignore(streamsize __n) > { > _M_gcount = 0; > sentry __cerb(*this, true); > if (__cerb && __n > 0) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > const int_type __eof = traits_type::eof(); > __streambuf_type* __sb = this->rdbuf(); > int_type __c = __sb->sgetc(); ># 468 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/bits/istream.tcc" 3 > bool __large_ignore = false; > while (true) > { > while (_M_gcount < __n > && !traits_type::eq_int_type(__c, __eof)) > { > ++_M_gcount; > __c = __sb->snextc(); > } > if (__n == __gnu_cxx::__numeric_traits<streamsize>::__max > && !traits_type::eq_int_type(__c, __eof)) > { > _M_gcount = > __gnu_cxx::__numeric_traits<streamsize>::__min; > __large_ignore = true; > } > else > break; > } > > if (__large_ignore) > _M_gcount = __gnu_cxx::__numeric_traits<streamsize>::__max; > > if (traits_type::eq_int_type(__c, __eof)) > __err |= ios_base::eofbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return *this; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > ignore(streamsize __n, int_type __delim) > { > _M_gcount = 0; > sentry __cerb(*this, true); > if (__cerb && __n > 0) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > const int_type __eof = traits_type::eof(); > __streambuf_type* __sb = this->rdbuf(); > int_type __c = __sb->sgetc(); > > > bool __large_ignore = false; > while (true) > { > while (_M_gcount < __n > && !traits_type::eq_int_type(__c, __eof) > && !traits_type::eq_int_type(__c, __delim)) > { > ++_M_gcount; > __c = __sb->snextc(); > } > if (__n == __gnu_cxx::__numeric_traits<streamsize>::__max > && !traits_type::eq_int_type(__c, __eof) > && !traits_type::eq_int_type(__c, __delim)) > { > _M_gcount = > __gnu_cxx::__numeric_traits<streamsize>::__min; > __large_ignore = true; > } > else > break; > } > > if (__large_ignore) > _M_gcount = __gnu_cxx::__numeric_traits<streamsize>::__max; > > if (traits_type::eq_int_type(__c, __eof)) > __err |= ios_base::eofbit; > else if (traits_type::eq_int_type(__c, __delim)) > { > if (_M_gcount > < __gnu_cxx::__numeric_traits<streamsize>::__max) > ++_M_gcount; > __sb->sbumpc(); > } > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return *this; > } > > template<typename _CharT, typename _Traits> > typename basic_istream<_CharT, _Traits>::int_type > basic_istream<_CharT, _Traits>:: > peek(void) > { > int_type __c = traits_type::eof(); > _M_gcount = 0; > sentry __cerb(*this, true); > if (__cerb) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > __c = this->rdbuf()->sgetc(); > if (traits_type::eq_int_type(__c, traits_type::eof())) > __err |= ios_base::eofbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return __c; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > read(char_type* __s, streamsize __n) > { > _M_gcount = 0; > sentry __cerb(*this, true); > if (__cerb) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > _M_gcount = this->rdbuf()->sgetn(__s, __n); > if (_M_gcount != __n) > __err |= (ios_base::eofbit | ios_base::failbit); > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return *this; > } > > template<typename _CharT, typename _Traits> > streamsize > basic_istream<_CharT, _Traits>:: > readsome(char_type* __s, streamsize __n) > { > _M_gcount = 0; > sentry __cerb(*this, true); > if (__cerb) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > > const streamsize __num = this->rdbuf()->in_avail(); > if (__num > 0) > _M_gcount = this->rdbuf()->sgetn(__s, std::min(__num, __n)); > else if (__num == -1) > __err |= ios_base::eofbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return _M_gcount; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > putback(char_type __c) > { > > > _M_gcount = 0; > sentry __cerb(*this, true); > if (__cerb) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > const int_type __eof = traits_type::eof(); > __streambuf_type* __sb = this->rdbuf(); > if (!__sb > || traits_type::eq_int_type(__sb->sputbackc(__c), __eof)) > __err |= ios_base::badbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return *this; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > unget(void) > { > > > _M_gcount = 0; > sentry __cerb(*this, true); > if (__cerb) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > const int_type __eof = traits_type::eof(); > __streambuf_type* __sb = this->rdbuf(); > if (!__sb > || traits_type::eq_int_type(__sb->sungetc(), __eof)) > __err |= ios_base::badbit; > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return *this; > } > > template<typename _CharT, typename _Traits> > int > basic_istream<_CharT, _Traits>:: > sync(void) > { > > > int __ret = -1; > sentry __cerb(*this, true); > if (__cerb) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > __streambuf_type* __sb = this->rdbuf(); > if (__sb) > { > if (__sb->pubsync() == -1) > __err |= ios_base::badbit; > else > __ret = 0; > } > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > } > return __ret; > } > > template<typename _CharT, typename _Traits> > typename basic_istream<_CharT, _Traits>::pos_type > basic_istream<_CharT, _Traits>:: > tellg(void) > { > > > pos_type __ret = pos_type(-1); > try > { > if (!this->fail()) > __ret = this->rdbuf()->pubseekoff(0, ios_base::cur, > ios_base::in); > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > return __ret; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > seekg(pos_type __pos) > { > > > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > if (!this->fail()) > { > > const pos_type __p = this->rdbuf()->pubseekpos(__pos, > ios_base::in); > > > if (__p == pos_type(off_type(-1))) > __err |= ios_base::failbit; > } > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > return *this; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > basic_istream<_CharT, _Traits>:: > seekg(off_type __off, ios_base::seekdir __dir) > { > > > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > if (!this->fail()) > { > > const pos_type __p = this->rdbuf()->pubseekoff(__off, __dir, > ios_base::in); > > > if (__p == pos_type(off_type(-1))) > __err |= ios_base::failbit; > } > } > catch(__cxxabiv1::__forced_unwind&) > { > this->_M_setstate(ios_base::badbit); > throw; > } > catch(...) > { this->_M_setstate(ios_base::badbit); } > if (__err) > this->setstate(__err); > return *this; > } > > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) > { > typedef basic_istream<_CharT, _Traits> __istream_type; > typedef typename __istream_type::int_type __int_type; > > typename __istream_type::sentry __cerb(__in, false); > if (__cerb) > { > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > try > { > const __int_type __cb = __in.rdbuf()->sbumpc(); > if (!_Traits::eq_int_type(__cb, _Traits::eof())) > __c = _Traits::to_char_type(__cb); > else > __err |= (ios_base::eofbit | ios_base::failbit); > } > catch(__cxxabiv1::__forced_unwind&) > { > __in._M_setstate(ios_base::badbit); > throw; > } > catch(...) > { __in._M_setstate(ios_base::badbit); } > if (__err) > __in.setstate(__err); > } > return __in; > } > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s) > { > typedef basic_istream<_CharT, _Traits> __istream_type; > typedef basic_streambuf<_CharT, _Traits> __streambuf_type; > typedef typename _Traits::int_type int_type; > typedef _CharT char_type; > typedef ctype<_CharT> __ctype_type; > > streamsize __extracted = 0; > ios_base::iostate __err = ios_base::iostate(ios_base::goodbit); > typename __istream_type::sentry __cerb(__in, false); > if (__cerb) > { > try > { > > streamsize __num = __in.width(); > if (__num <= 0) > __num = __gnu_cxx::__numeric_traits<streamsize>::__max; > > const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); > > const int_type __eof = _Traits::eof(); > __streambuf_type* __sb = __in.rdbuf(); > int_type __c = __sb->sgetc(); > > while (__extracted < __num - 1 > && !_Traits::eq_int_type(__c, __eof) > && !__ct.is(ctype_base::space, > _Traits::to_char_type(__c))) > { > *__s++ = _Traits::to_char_type(__c); > ++__extracted; > __c = __sb->snextc(); > } > if (_Traits::eq_int_type(__c, __eof)) > __err |= ios_base::eofbit; > > > > *__s = char_type(); > __in.width(0); > } > catch(__cxxabiv1::__forced_unwind&) > { > __in._M_setstate(ios_base::badbit); > throw; > } > catch(...) > { __in._M_setstate(ios_base::badbit); } > } > if (!__extracted) > __err |= ios_base::failbit; > if (__err) > __in.setstate(__err); > return __in; > } > > > template<typename _CharT, typename _Traits> > basic_istream<_CharT, _Traits>& > ws(basic_istream<_CharT, _Traits>& __in) > { > typedef basic_istream<_CharT, _Traits> __istream_type; > typedef basic_streambuf<_CharT, _Traits> __streambuf_type; > typedef typename __istream_type::int_type __int_type; > typedef ctype<_CharT> __ctype_type; > > const __ctype_type& __ct = use_facet<__ctype_type>(__in.getloc()); > const __int_type __eof = _Traits::eof(); > __streambuf_type* __sb = __in.rdbuf(); > __int_type __c = __sb->sgetc(); > > while (!_Traits::eq_int_type(__c, __eof) > && __ct.is(ctype_base::space, _Traits::to_char_type(__c))) > __c = __sb->snextc(); > > if (_Traits::eq_int_type(__c, __eof)) > __in.setstate(ios_base::eofbit); > return __in; > } > > > > > > extern template class basic_istream<char>; > extern template istream& ws(istream&); > extern template istream& operator>>(istream&, char&); > extern template istream& operator>>(istream&, char*); > extern template istream& operator>>(istream&, unsigned char&); > extern template istream& operator>>(istream&, signed char&); > extern template istream& operator>>(istream&, unsigned char*); > extern template istream& operator>>(istream&, signed char*); > > extern template istream& istream::_M_extract(unsigned short&); > extern template istream& istream::_M_extract(unsigned int&); > extern template istream& istream::_M_extract(long&); > extern template istream& istream::_M_extract(unsigned long&); > extern template istream& istream::_M_extract(bool&); > > extern template istream& istream::_M_extract(long long&); > extern template istream& istream::_M_extract(unsigned long long&); > > extern template istream& istream::_M_extract(float&); > extern template istream& istream::_M_extract(double&); > extern template istream& istream::_M_extract(long double&); > extern template istream& istream::_M_extract(void*&); > > extern template class basic_iostream<char>; > > > extern template class basic_istream<wchar_t>; > extern template wistream& ws(wistream&); > extern template wistream& operator>>(wistream&, wchar_t&); > extern template wistream& operator>>(wistream&, wchar_t*); > > extern template wistream& wistream::_M_extract(unsigned short&); > extern template wistream& wistream::_M_extract(unsigned int&); > extern template wistream& wistream::_M_extract(long&); > extern template wistream& wistream::_M_extract(unsigned long&); > extern template wistream& wistream::_M_extract(bool&); > > extern template wistream& wistream::_M_extract(long long&); > extern template wistream& wistream::_M_extract(unsigned long long&); > > extern template wistream& wistream::_M_extract(float&); > extern template wistream& wistream::_M_extract(double&); > extern template wistream& wistream::_M_extract(long double&); > extern template wistream& wistream::_M_extract(void*&); > > extern template class basic_iostream<wchar_t>; > > > >} ># 837 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/istream" 2 3 ># 47 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iostream" 2 3 > >namespace std __attribute__ ((__visibility__ ("default"))) { ># 63 "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../include/c++/4.3.0/iostream" 3 > extern istream cin; > extern ostream cout; > extern ostream cerr; > extern ostream clog; > > > extern wistream wcin; > extern wostream wcout; > extern wostream wcerr; > extern wostream wclog; > > > > > static ios_base::Init __ioinit; > >} ># 36 "../condor_includes/condor_fix_iostream.h" 2 >using namespace std; ># 494 "../condor_includes/stdsoap2.h" 2 ># 511 "../condor_includes/stdsoap2.h" ># 1 "/usr/include/errno.h" 1 3 4 ># 512 "../condor_includes/stdsoap2.h" 2 ># 612 "../condor_includes/stdsoap2.h" ># 1 "/usr/include/openssl/bio.h" 1 3 4 ># 62 "/usr/include/openssl/bio.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 > > > > > >extern "C" { ># 277 "/usr/include/openssl/e_os2.h" 3 4 >} ># 63 "/usr/include/openssl/bio.h" 2 3 4 > > > > > > ># 1 "/usr/include/openssl/crypto.h" 1 3 4 ># 122 "/usr/include/openssl/crypto.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 123 "/usr/include/openssl/crypto.h" 2 3 4 > > > > > ># 1 "/usr/include/openssl/stack.h" 1 3 4 ># 63 "/usr/include/openssl/stack.h" 3 4 >extern "C" { > > >typedef struct stack_st > { > int num; > char **data; > int sorted; > > int num_alloc; > int (*comp)(const char * const *, const char * const *); > } STACK; > > > > >int sk_num(const STACK *); >char *sk_value(const STACK *, int); > >char *sk_set(STACK *, int, char *); > >STACK *sk_new(int (*cmp)(const char * const *, const char * const *)); >STACK *sk_new_null(void); >void sk_free(STACK *); >void sk_pop_free(STACK *st, void (*func)(void *)); >int sk_insert(STACK *sk,char *data,int where); >char *sk_delete(STACK *st,int loc); >char *sk_delete_ptr(STACK *st, char *p); >int sk_find(STACK *st,char *data); >int sk_find_ex(STACK *st,char *data); >int sk_push(STACK *st,char *data); >int sk_unshift(STACK *st,char *data); >char *sk_shift(STACK *st); >char *sk_pop(STACK *st); >void sk_zero(STACK *st); >int (*sk_set_cmp_func(STACK *sk, int (*c)(const char * const *, > const char * const *))) > (const char * const *, const char * const *); >STACK *sk_dup(STACK *st); >void sk_sort(STACK *st); >int sk_is_sorted(const STACK *st); > > >} ># 129 "/usr/include/openssl/crypto.h" 2 3 4 ># 1 "/usr/include/openssl/safestack.h" 1 3 4 ># 130 "/usr/include/openssl/crypto.h" 2 3 4 ># 1 "/usr/include/openssl/opensslv.h" 1 3 4 ># 131 "/usr/include/openssl/crypto.h" 2 3 4 ># 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 ># 58 "/usr/include/openssl/ossl_typ.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 59 "/usr/include/openssl/ossl_typ.h" 2 3 4 ># 79 "/usr/include/openssl/ossl_typ.h" 3 4 >typedef struct asn1_string_st ASN1_INTEGER; >typedef struct asn1_string_st ASN1_ENUMERATED; >typedef struct asn1_string_st ASN1_BIT_STRING; >typedef struct asn1_string_st ASN1_OCTET_STRING; >typedef struct asn1_string_st ASN1_PRINTABLESTRING; >typedef struct asn1_string_st ASN1_T61STRING; >typedef struct asn1_string_st ASN1_IA5STRING; >typedef struct asn1_string_st ASN1_GENERALSTRING; >typedef struct asn1_string_st ASN1_UNIVERSALSTRING; >typedef struct asn1_string_st ASN1_BMPSTRING; >typedef struct asn1_string_st ASN1_UTCTIME; >typedef struct asn1_string_st ASN1_TIME; >typedef struct asn1_string_st ASN1_GENERALIZEDTIME; >typedef struct asn1_string_st ASN1_VISIBLESTRING; >typedef struct asn1_string_st ASN1_UTF8STRING; >typedef int ASN1_BOOLEAN; >typedef int ASN1_NULL; ># 107 "/usr/include/openssl/ossl_typ.h" 3 4 >typedef struct bignum_st BIGNUM; >typedef struct bignum_ctx BN_CTX; >typedef struct bn_blinding_st BN_BLINDING; >typedef struct bn_mont_ctx_st BN_MONT_CTX; >typedef struct bn_recp_ctx_st BN_RECP_CTX; >typedef struct bn_gencb_st BN_GENCB; > >typedef struct buf_mem_st BUF_MEM; > >typedef struct evp_cipher_st EVP_CIPHER; >typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; >typedef struct env_md_st EVP_MD; >typedef struct env_md_ctx_st EVP_MD_CTX; >typedef struct evp_pkey_st EVP_PKEY; > >typedef struct dh_st DH; >typedef struct dh_method DH_METHOD; > >typedef struct dsa_st DSA; >typedef struct dsa_method DSA_METHOD; > >typedef struct rsa_st RSA; >typedef struct rsa_meth_st RSA_METHOD; > >typedef struct rand_meth_st RAND_METHOD; > >typedef struct ecdh_method ECDH_METHOD; >typedef struct ecdsa_method ECDSA_METHOD; > >typedef struct x509_st X509; >typedef struct X509_algor_st X509_ALGOR; >typedef struct X509_crl_st X509_CRL; >typedef struct X509_name_st X509_NAME; >typedef struct x509_store_st X509_STORE; >typedef struct x509_store_ctx_st X509_STORE_CTX; > >typedef struct v3_ext_ctx X509V3_CTX; >typedef struct conf_st CONF; > >typedef struct store_st STORE; >typedef struct store_method_st STORE_METHOD; > >typedef struct ui_st UI; >typedef struct ui_method_st UI_METHOD; > >typedef struct st_ERR_FNS ERR_FNS; > >typedef struct engine_st ENGINE; > >typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; >typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; >typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; >typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; > > > > > >typedef struct crypto_ex_data_st CRYPTO_EX_DATA; > >typedef int CRYPTO_EX_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad, > int idx, long argl, void *argp); >typedef void CRYPTO_EX_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad, > int idx, long argl, void *argp); >typedef int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, void *from_d, > int idx, long argl, void *argp); ># 132 "/usr/include/openssl/crypto.h" 2 3 4 > > > > > > > ># 1 "/usr/include/openssl/symhacks.h" 1 3 4 ># 58 "/usr/include/openssl/symhacks.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 59 "/usr/include/openssl/symhacks.h" 2 3 4 ># 140 "/usr/include/openssl/crypto.h" 2 3 4 > > >extern "C" { ># 171 "/usr/include/openssl/crypto.h" 3 4 >typedef struct openssl_item_st > { > int code; > void *value; > size_t value_size; > size_t *value_length; > } OPENSSL_ITEM; ># 254 "/usr/include/openssl/crypto.h" 3 4 >typedef struct > { > int references; > struct CRYPTO_dynlock_value *data; > } CRYPTO_dynlock; ># 281 "/usr/include/openssl/crypto.h" 3 4 >typedef struct bio_st BIO_dummy; > >struct crypto_ex_data_st > { > STACK *sk; > int dummy; > }; > > > > >typedef struct crypto_ex_data_func_st > { > long argl; > void *argp; > CRYPTO_EX_new *new_func; > CRYPTO_EX_free *free_func; > CRYPTO_EX_dup *dup_func; > } CRYPTO_EX_DATA_FUNCS; > > ># 353 "/usr/include/openssl/crypto.h" 3 4 >int CRYPTO_mem_ctrl(int mode); >int CRYPTO_is_mem_check_on(void); ># 380 "/usr/include/openssl/crypto.h" 3 4 >const char *SSLeay_version(int type); >unsigned long SSLeay(void); > >int OPENSSL_issetugid(void); > > >typedef struct st_CRYPTO_EX_DATA_IMPL CRYPTO_EX_DATA_IMPL; > >const CRYPTO_EX_DATA_IMPL *CRYPTO_get_ex_data_implementation(void); > >int CRYPTO_set_ex_data_implementation(const CRYPTO_EX_DATA_IMPL *i); > >int CRYPTO_ex_data_new_class(void); > >int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, > CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, > CRYPTO_EX_free *free_func); > > >int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); >int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, > CRYPTO_EX_DATA *from); >void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); > > >int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); >void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad,int idx); > > >void CRYPTO_cleanup_all_ex_data(void); > >int CRYPTO_get_new_lockid(char *name); > >int CRYPTO_num_locks(void); >void CRYPTO_lock(int mode, int type,const char *file,int line); >void CRYPTO_set_locking_callback(void (*func)(int mode,int type, > const char *file,int line)); >void (*CRYPTO_get_locking_callback(void))(int mode,int type,const char *file, > int line); >void CRYPTO_set_add_lock_callback(int (*func)(int *num,int mount,int type, > const char *file, int line)); >int (*CRYPTO_get_add_lock_callback(void))(int *num,int mount,int type, > const char *file,int line); >void CRYPTO_set_id_callback(unsigned long (*func)(void)); >unsigned long (*CRYPTO_get_id_callback(void))(void); >unsigned long CRYPTO_thread_id(void); >const char *CRYPTO_get_lock_name(int type); >int CRYPTO_add_lock(int *pointer,int amount,int type, const char *file, > int line); > >int CRYPTO_get_new_dynlockid(void); >void CRYPTO_destroy_dynlockid(int i); >struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i); >void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *(*dyn_create_function)(const char *file, int line)); >void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)(int mode, struct CRYPTO_dynlock_value *l, const char *file, int line)); >void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)(struct CRYPTO_dynlock_value *l, const char *file, int line)); >struct CRYPTO_dynlock_value *(*CRYPTO_get_dynlock_create_callback(void))(const char *file,int line); >void (*CRYPTO_get_dynlock_lock_callback(void))(int mode, struct CRYPTO_dynlock_value *l, const char *file,int line); >void (*CRYPTO_get_dynlock_destroy_callback(void))(struct CRYPTO_dynlock_value *l, const char *file,int line); > > > >int CRYPTO_set_mem_functions(void *(*m)(size_t),void *(*r)(void *,size_t), void (*f)(void *)); >int CRYPTO_set_locked_mem_functions(void *(*m)(size_t), void (*free_func)(void *)); >int CRYPTO_set_mem_ex_functions(void *(*m)(size_t,const char *,int), > void *(*r)(void *,size_t,const char *,int), > void (*f)(void *)); >int CRYPTO_set_locked_mem_ex_functions(void *(*m)(size_t,const char *,int), > void (*free_func)(void *)); >int CRYPTO_set_mem_debug_functions(void (*m)(void *,int,const char *,int,int), > void (*r)(void *,void *,int,const char *,int,int), > void (*f)(void *,int), > void (*so)(long), > long (*go)(void)); >void CRYPTO_get_mem_functions(void *(**m)(size_t),void *(**r)(void *, size_t), void (**f)(void *)); >void CRYPTO_get_locked_mem_functions(void *(**m)(size_t), void (**f)(void *)); >void CRYPTO_get_mem_ex_functions(void *(**m)(size_t,const char *,int), > void *(**r)(void *, size_t,const char *,int), > void (**f)(void *)); >void CRYPTO_get_locked_mem_ex_functions(void *(**m)(size_t,const char *,int), > void (**f)(void *)); >void CRYPTO_get_mem_debug_functions(void (**m)(void *,int,const char *,int,int), > void (**r)(void *,void *,int,const char *,int,int), > void (**f)(void *,int), > void (**so)(long), > long (**go)(void)); > >void *CRYPTO_malloc_locked(int num, const char *file, int line); >void CRYPTO_free_locked(void *); >void *CRYPTO_malloc(int num, const char *file, int line); >void CRYPTO_free(void *); >void *CRYPTO_realloc(void *addr,int num, const char *file, int line); >void *CRYPTO_realloc_clean(void *addr,int old_num,int num,const char *file, > int line); >void *CRYPTO_remalloc(void *addr,int num, const char *file, int line); > >void OPENSSL_cleanse(void *ptr, size_t len); > >void CRYPTO_set_mem_debug_options(long bits); >long CRYPTO_get_mem_debug_options(void); > > > >int CRYPTO_push_info_(const char *info, const char *file, int line); >int CRYPTO_pop_info(void); >int CRYPTO_remove_all_info(void); ># 495 "/usr/include/openssl/crypto.h" 3 4 >void CRYPTO_dbg_malloc(void *addr,int num,const char *file,int line,int before_p); >void CRYPTO_dbg_realloc(void *addr1,void *addr2,int num,const char *file,int line,int before_p); >void CRYPTO_dbg_free(void *addr,int before_p); ># 506 "/usr/include/openssl/crypto.h" 3 4 >void CRYPTO_dbg_set_options(long bits); >long CRYPTO_dbg_get_options(void); > > > >void CRYPTO_mem_leaks_fp(FILE *); > >void CRYPTO_mem_leaks(struct bio_st *bio); > >typedef void *CRYPTO_MEM_LEAK_CB(unsigned long, const char *, int, int, void *); >void CRYPTO_mem_leaks_cb(CRYPTO_MEM_LEAK_CB *cb); > > >void OpenSSLDie(const char *file,int line,const char *assertion); > > >unsigned long *OPENSSL_ia32cap_loc(void); > > > > > > >void ERR_load_CRYPTO_strings(void); ># 548 "/usr/include/openssl/crypto.h" 3 4 >} ># 70 "/usr/include/openssl/bio.h" 2 3 4 > > >extern "C" { ># 199 "/usr/include/openssl/bio.h" 3 4 >typedef struct bio_st BIO; > >void BIO_set_flags(BIO *b, int flags); >int BIO_test_flags(const BIO *b, int flags); >void BIO_clear_flags(BIO *b, int flags); ># 253 "/usr/include/openssl/bio.h" 3 4 >long (*BIO_get_callback(const BIO *b)) (struct bio_st *,int,const char *,int, long,long); >void BIO_set_callback(BIO *b, > long (*callback)(struct bio_st *,int,const char *,int, long,long)); >char *BIO_get_callback_arg(const BIO *b); >void BIO_set_callback_arg(BIO *b, char *arg); > >const char * BIO_method_name(const BIO *b); >int BIO_method_type(const BIO *b); > >typedef void bio_info_cb(struct bio_st *, int, const char *, int, long, long); > > >typedef struct bio_method_st > { > int type; > const char *name; > int (*bwrite)(BIO *, const char *, int); > int (*bread)(BIO *, char *, int); > int (*bputs)(BIO *, const char *); > int (*bgets)(BIO *, char *, int); > long (*ctrl)(BIO *, int, long, void *); > int (*create)(BIO *); > int (*destroy)(BIO *); > long (*callback_ctrl)(BIO *, int, bio_info_cb *); > } BIO_METHOD; ># 294 "/usr/include/openssl/bio.h" 3 4 >struct bio_st > { > BIO_METHOD *method; > > long (*callback)(struct bio_st *,int,const char *,int, long,long); > char *cb_arg; > > int init; > int shutdown; > int flags; > int retry_reason; > int num; > void *ptr; > struct bio_st *next_bio; > struct bio_st *prev_bio; > int references; > unsigned long num_read; > unsigned long num_write; > > CRYPTO_EX_DATA ex_data; > }; > > > >typedef struct bio_f_buffer_ctx_struct > { > > int ibuf_size; > int obuf_size; > > char *ibuf; > int ibuf_len; > int ibuf_off; > > char *obuf; > int obuf_len; > int obuf_off; > } BIO_F_BUFFER_CTX; ># 511 "/usr/include/openssl/bio.h" 3 4 >size_t BIO_ctrl_pending(BIO *b); >size_t BIO_ctrl_wpending(BIO *b); ># 530 "/usr/include/openssl/bio.h" 3 4 >size_t BIO_ctrl_get_write_guarantee(BIO *b); >size_t BIO_ctrl_get_read_request(BIO *b); >int BIO_ctrl_reset_read_request(BIO *b); ># 549 "/usr/include/openssl/bio.h" 3 4 >int BIO_set_ex_data(BIO *bio,int idx,void *data); >void *BIO_get_ex_data(BIO *bio,int idx); >int BIO_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, > CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); >unsigned long BIO_number_read(BIO *bio); >unsigned long BIO_number_written(BIO *bio); ># 565 "/usr/include/openssl/bio.h" 3 4 >BIO_METHOD *BIO_s_file(void ); >BIO *BIO_new_file(const char *filename, const char *mode); >BIO *BIO_new_fp(FILE *stream, int close_flag); > > > > > >BIO * BIO_new(BIO_METHOD *type); >int BIO_set(BIO *a,BIO_METHOD *type); >int BIO_free(BIO *a); >void BIO_vfree(BIO *a); >int BIO_read(BIO *b, void *data, int len); >int BIO_gets(BIO *bp,char *buf, int size); >int BIO_write(BIO *b, const void *data, int len); >int BIO_puts(BIO *bp,const char *buf); >int BIO_indent(BIO *b,int indent,int max); >long BIO_ctrl(BIO *bp,int cmd,long larg,void *parg); >long BIO_callback_ctrl(BIO *b, int cmd, void (*fp)(struct bio_st *, int, const char *, int, long, long)); >char * BIO_ptr_ctrl(BIO *bp,int cmd,long larg); >long BIO_int_ctrl(BIO *bp,int cmd,long larg,int iarg); >BIO * BIO_push(BIO *b,BIO *append); >BIO * BIO_pop(BIO *b); >void BIO_free_all(BIO *a); >BIO * BIO_find_type(BIO *b,int bio_type); >BIO * BIO_next(BIO *b); >BIO * BIO_get_retry_BIO(BIO *bio, int *reason); >int BIO_get_retry_reason(BIO *bio); >BIO * BIO_dup_chain(BIO *in); > >int BIO_nread0(BIO *bio, char **buf); >int BIO_nread(BIO *bio, char **buf, int num); >int BIO_nwrite0(BIO *bio, char **buf); >int BIO_nwrite(BIO *bio, char **buf, int num); > > >long BIO_debug_callback(BIO *bio,int cmd,const char *argp,int argi, > long argl,long ret); > > > > > >BIO_METHOD *BIO_s_mem(void); >BIO *BIO_new_mem_buf(void *buf, int len); >BIO_METHOD *BIO_s_socket(void); >BIO_METHOD *BIO_s_connect(void); >BIO_METHOD *BIO_s_accept(void); >BIO_METHOD *BIO_s_fd(void); > >BIO_METHOD *BIO_s_log(void); > >BIO_METHOD *BIO_s_bio(void); >BIO_METHOD *BIO_s_null(void); >BIO_METHOD *BIO_f_null(void); >BIO_METHOD *BIO_f_buffer(void); > > > >BIO_METHOD *BIO_f_nbio_test(void); > >BIO_METHOD *BIO_s_datagram(void); > > > > >int BIO_sock_should_retry(int i); >int BIO_sock_non_fatal_error(int error); >int BIO_dgram_non_fatal_error(int error); > >int BIO_fd_should_retry(int i); >int BIO_fd_non_fatal_error(int error); >int BIO_dump_cb(int (*cb)(const void *data, size_t len, void *u), > void *u, const char *s, int len); >int BIO_dump_indent_cb(int (*cb)(const void *data, size_t len, void *u), > void *u, const char *s, int len, int indent); >int BIO_dump(BIO *b,const char *bytes,int len); >int BIO_dump_indent(BIO *b,const char *bytes,int len,int indent); > >int BIO_dump_fp(FILE *fp, const char *s, int len); >int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); > >struct hostent *BIO_gethostbyname(const char *name); ># 656 "/usr/include/openssl/bio.h" 3 4 >int BIO_sock_error(int sock); >int BIO_socket_ioctl(int fd, long type, void *arg); >int BIO_socket_nbio(int fd,int mode); >int BIO_get_port(const char *str, unsigned short *port_ptr); >int BIO_get_host_ip(const char *str, unsigned char *ip); >int BIO_get_accept_socket(char *host_port,int mode); >int BIO_accept(int sock,char **ip_port); >int BIO_sock_init(void ); >void BIO_sock_cleanup(void); >int BIO_set_tcp_ndelay(int sock,int turn_on); > >BIO *BIO_new_socket(int sock, int close_flag); >BIO *BIO_new_dgram(int fd, int close_flag); >BIO *BIO_new_fd(int fd, int close_flag); >BIO *BIO_new_connect(char *host_port); >BIO *BIO_new_accept(char *host_port); > >int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, > BIO **bio2, size_t writebuf2); > > > > > >void BIO_copy_next_retry(BIO *b); ># 689 "/usr/include/openssl/bio.h" 3 4 >int BIO_printf(BIO *bio, const char *format, ...) > __attribute__((__format__(__printf__,2,3))); >int BIO_vprintf(BIO *bio, const char *format, va_list args) > __attribute__((__format__(__printf__,2,0))); >int BIO_snprintf(char *buf, size_t n, const char *format, ...) > __attribute__((__format__(__printf__,3,4))); >int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) > __attribute__((__format__(__printf__,3,0))); > > > > > > >void ERR_load_BIO_strings(void); ># 773 "/usr/include/openssl/bio.h" 3 4 >} ># 613 "../condor_includes/stdsoap2.h" 2 ># 1 "/usr/include/openssl/err.h" 1 3 4 ># 62 "/usr/include/openssl/err.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 63 "/usr/include/openssl/err.h" 2 3 4 ># 74 "/usr/include/openssl/err.h" 3 4 ># 1 "/usr/include/openssl/lhash.h" 1 3 4 ># 66 "/usr/include/openssl/lhash.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 67 "/usr/include/openssl/lhash.h" 2 3 4 ># 76 "/usr/include/openssl/lhash.h" 3 4 >extern "C" { > > >typedef struct lhash_node_st > { > void *data; > struct lhash_node_st *next; > > unsigned long hash; > > } LHASH_NODE; > >typedef int (*LHASH_COMP_FN_TYPE)(const void *, const void *); >typedef unsigned long (*LHASH_HASH_FN_TYPE)(const void *); >typedef void (*LHASH_DOALL_FN_TYPE)(void *); >typedef void (*LHASH_DOALL_ARG_FN_TYPE)(void *, void *); ># 138 "/usr/include/openssl/lhash.h" 3 4 >typedef struct lhash_st > { > LHASH_NODE **b; > LHASH_COMP_FN_TYPE comp; > LHASH_HASH_FN_TYPE hash; > unsigned int num_nodes; > unsigned int num_alloc_nodes; > unsigned int p; > unsigned int pmax; > unsigned long up_load; > unsigned long down_load; > unsigned long num_items; > > unsigned long num_expands; > unsigned long num_expand_reallocs; > unsigned long num_contracts; > unsigned long num_contract_reallocs; > unsigned long num_hash_calls; > unsigned long num_comp_calls; > unsigned long num_insert; > unsigned long num_replace; > unsigned long num_delete; > unsigned long num_no_delete; > unsigned long num_retrieve; > unsigned long num_retrieve_miss; > unsigned long num_hash_comps; > > int error; > } LHASH; > > > > > > > >LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c); >void lh_free(LHASH *lh); >void *lh_insert(LHASH *lh, void *data); >void *lh_delete(LHASH *lh, const void *data); >void *lh_retrieve(LHASH *lh, const void *data); >void lh_doall(LHASH *lh, LHASH_DOALL_FN_TYPE func); >void lh_doall_arg(LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg); >unsigned long lh_strhash(const char *c); >unsigned long lh_num_items(const LHASH *lh); > > >void lh_stats(const LHASH *lh, FILE *out); >void lh_node_stats(const LHASH *lh, FILE *out); >void lh_node_usage_stats(const LHASH *lh, FILE *out); > > > >void lh_stats_bio(const LHASH *lh, BIO *out); >void lh_node_stats_bio(const LHASH *lh, BIO *out); >void lh_node_usage_stats_bio(const LHASH *lh, BIO *out); > > >} ># 75 "/usr/include/openssl/err.h" 2 3 4 > > > >extern "C" { ># 87 "/usr/include/openssl/err.h" 3 4 ># 1 "/usr/include/errno.h" 1 3 4 ># 88 "/usr/include/openssl/err.h" 2 3 4 > > > > > > > >typedef struct err_state_st > { > unsigned long pid; > int err_flags[16]; > unsigned long err_buffer[16]; > char *err_data[16]; > int err_data_flags[16]; > const char *err_file[16]; > int err_line[16]; > int top,bottom; > } ERR_STATE; ># 249 "/usr/include/openssl/err.h" 3 4 >typedef struct ERR_string_data_st > { > unsigned long error; > const char *string; > } ERR_STRING_DATA; > >void ERR_put_error(int lib, int func,int reason,const char *file,int line); >void ERR_set_error_data(char *data,int flags); > >unsigned long ERR_get_error(void); >unsigned long ERR_get_error_line(const char **file,int *line); >unsigned long ERR_get_error_line_data(const char **file,int *line, > const char **data, int *flags); >unsigned long ERR_peek_error(void); >unsigned long ERR_peek_error_line(const char **file,int *line); >unsigned long ERR_peek_error_line_data(const char **file,int *line, > const char **data,int *flags); >unsigned long ERR_peek_last_error(void); >unsigned long ERR_peek_last_error_line(const char **file,int *line); >unsigned long ERR_peek_last_error_line_data(const char **file,int *line, > const char **data,int *flags); >void ERR_clear_error(void ); >char *ERR_error_string(unsigned long e,char *buf); >void ERR_error_string_n(unsigned long e, char *buf, size_t len); >const char *ERR_lib_error_string(unsigned long e); >const char *ERR_func_error_string(unsigned long e); >const char *ERR_reason_error_string(unsigned long e); >void ERR_print_errors_cb(int (*cb)(const char *str, size_t len, void *u), > void *u); > >void ERR_print_errors_fp(FILE *fp); > > >void ERR_print_errors(BIO *bp); >void ERR_add_error_data(int num, ...); > >void ERR_load_strings(int lib,ERR_STRING_DATA str[]); >void ERR_unload_strings(int lib,ERR_STRING_DATA str[]); >void ERR_load_ERR_strings(void); >void ERR_load_crypto_strings(void); >void ERR_free_strings(void); > >void ERR_remove_state(unsigned long pid); >ERR_STATE *ERR_get_state(void); > > >LHASH *ERR_get_string_table(void); >LHASH *ERR_get_err_state_table(void); >void ERR_release_err_state_table(LHASH **hash); > > >int ERR_get_next_error_library(void); > >int ERR_set_mark(void); >int ERR_pop_to_mark(void); > > > > > >const ERR_FNS *ERR_get_implementation(void); > > >int ERR_set_implementation(const ERR_FNS *fns); > > >} ># 614 "../condor_includes/stdsoap2.h" 2 ># 1 "/usr/include/openssl/rand.h" 1 3 4 ># 64 "/usr/include/openssl/rand.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 65 "/usr/include/openssl/rand.h" 2 3 4 > > > > > > >extern "C" { ># 81 "/usr/include/openssl/rand.h" 3 4 >struct rand_meth_st > { > void (*seed)(const void *buf, int num); > int (*bytes)(unsigned char *buf, int num); > void (*cleanup)(void); > void (*add)(const void *buf, int num, double entropy); > int (*pseudorand)(unsigned char *buf, int num); > int (*status)(void); > }; > > > > > >int RAND_set_rand_method(const RAND_METHOD *meth); >const RAND_METHOD *RAND_get_rand_method(void); > >int RAND_set_rand_engine(ENGINE *engine); > >RAND_METHOD *RAND_SSLeay(void); >void RAND_cleanup(void ); >int RAND_bytes(unsigned char *buf,int num); >int RAND_pseudo_bytes(unsigned char *buf,int num); >void RAND_seed(const void *buf,int num); >void RAND_add(const void *buf,int num,double entropy); >int RAND_load_file(const char *file,long max_bytes); >int RAND_write_file(const char *file); >const char *RAND_file_name(char *file,size_t num); >int RAND_status(void); >int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); >int RAND_egd(const char *path); >int RAND_egd_bytes(const char *path,int bytes); >int RAND_poll(void); ># 126 "/usr/include/openssl/rand.h" 3 4 >void ERR_load_RAND_strings(void); ># 138 "/usr/include/openssl/rand.h" 3 4 >} ># 615 "../condor_includes/stdsoap2.h" 2 ># 1 "/usr/include/openssl/ssl.h" 1 3 4 ># 173 "/usr/include/openssl/ssl.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 174 "/usr/include/openssl/ssl.h" 2 3 4 > > ># 1 "/usr/include/openssl/comp.h" 1 3 4 > > > > > > > >extern "C" { > > >typedef struct comp_ctx_st COMP_CTX; > >typedef struct comp_method_st > { > int type; > const char *name; > int (*init)(COMP_CTX *ctx); > void (*finish)(COMP_CTX *ctx); > int (*compress)(COMP_CTX *ctx, > unsigned char *out, unsigned int olen, > unsigned char *in, unsigned int ilen); > int (*expand)(COMP_CTX *ctx, > unsigned char *out, unsigned int olen, > unsigned char *in, unsigned int ilen); > > long (*ctrl)(void); > long (*callback_ctrl)(void); > } COMP_METHOD; > >struct comp_ctx_st > { > COMP_METHOD *meth; > unsigned long compress_in; > unsigned long compress_out; > unsigned long expand_in; > unsigned long expand_out; > > CRYPTO_EX_DATA ex_data; > }; > > >COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); >void COMP_CTX_free(COMP_CTX *ctx); >int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, > unsigned char *in, int ilen); >int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, > unsigned char *in, int ilen); >COMP_METHOD *COMP_rle(void ); >COMP_METHOD *COMP_zlib(void ); > > > > > >void ERR_load_COMP_strings(void); ># 64 "/usr/include/openssl/comp.h" 3 4 >} ># 177 "/usr/include/openssl/ssl.h" 2 3 4 > > > > > > ># 1 "/usr/include/openssl/x509.h" 1 3 4 ># 67 "/usr/include/openssl/x509.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 68 "/usr/include/openssl/x509.h" 2 3 4 > > ># 1 "/usr/include/openssl/buffer.h" 1 3 4 ># 65 "/usr/include/openssl/buffer.h" 3 4 >extern "C" { > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 69 "/usr/include/openssl/buffer.h" 2 3 4 ># 77 "/usr/include/openssl/buffer.h" 3 4 >struct buf_mem_st > { > int length; > char *data; > int max; > }; > >BUF_MEM *BUF_MEM_new(void); >void BUF_MEM_free(BUF_MEM *a); >int BUF_MEM_grow(BUF_MEM *str, int len); >int BUF_MEM_grow_clean(BUF_MEM *str, int len); >char * BUF_strdup(const char *str); >char * BUF_strndup(const char *str, size_t siz); >void * BUF_memdup(const void *data, size_t siz); > > >size_t BUF_strlcpy(char *dst,const char *src,size_t siz); >size_t BUF_strlcat(char *dst,const char *src,size_t siz); > > > > > > >void ERR_load_BUF_strings(void); ># 116 "/usr/include/openssl/buffer.h" 3 4 >} ># 71 "/usr/include/openssl/x509.h" 2 3 4 > > ># 1 "/usr/include/openssl/evp.h" 1 3 4 ># 66 "/usr/include/openssl/evp.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 67 "/usr/include/openssl/evp.h" 2 3 4 ># 94 "/usr/include/openssl/evp.h" 3 4 ># 1 "/usr/include/openssl/objects.h" 1 3 4 ># 65 "/usr/include/openssl/objects.h" 3 4 ># 1 "/usr/include/openssl/obj_mac.h" 1 3 4 ># 66 "/usr/include/openssl/objects.h" 2 3 4 ># 960 "/usr/include/openssl/objects.h" 3 4 ># 1 "/usr/include/openssl/asn1.h" 1 3 4 ># 63 "/usr/include/openssl/asn1.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 64 "/usr/include/openssl/asn1.h" 2 3 4 ># 74 "/usr/include/openssl/asn1.h" 3 4 ># 1 "/usr/include/openssl/bn.h" 1 3 4 ># 75 "/usr/include/openssl/bn.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 76 "/usr/include/openssl/bn.h" 2 3 4 > > > > > > >extern "C" { ># 288 "/usr/include/openssl/bn.h" 3 4 >struct bignum_st > { > unsigned long *d; > int top; > > int dmax; > int neg; > int flags; > }; > > >struct bn_mont_ctx_st > { > int ri; > BIGNUM RR; > BIGNUM N; > BIGNUM Ni; > > unsigned long n0; > int flags; > }; > > > > >struct bn_recp_ctx_st > { > BIGNUM N; > BIGNUM Nr; > int num_bits; > int shift; > int flags; > }; > > >struct bn_gencb_st > { > unsigned int ver; > void *arg; > union > { > > void (*cb_1)(int, int, void *); > > int (*cb_2)(int, int, BN_GENCB *); > } cb; > }; > >int BN_GENCB_call(BN_GENCB *cb, int a, int b); ># 394 "/usr/include/openssl/bn.h" 3 4 >const BIGNUM *BN_value_one(void); >char * BN_options(void); >BN_CTX *BN_CTX_new(void); > >void BN_CTX_init(BN_CTX *c); > >void BN_CTX_free(BN_CTX *c); >void BN_CTX_start(BN_CTX *ctx); >BIGNUM *BN_CTX_get(BN_CTX *ctx); >void BN_CTX_end(BN_CTX *ctx); >int BN_rand(BIGNUM *rnd, int bits, int top,int bottom); >int BN_pseudo_rand(BIGNUM *rnd, int bits, int top,int bottom); >int BN_rand_range(BIGNUM *rnd, BIGNUM *range); >int BN_pseudo_rand_range(BIGNUM *rnd, BIGNUM *range); >int BN_num_bits(const BIGNUM *a); >int BN_num_bits_word(unsigned long); >BIGNUM *BN_new(void); >void BN_init(BIGNUM *); >void BN_clear_free(BIGNUM *a); >BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); >void BN_swap(BIGNUM *a, BIGNUM *b); >BIGNUM *BN_bin2bn(const unsigned char *s,int len,BIGNUM *ret); >int BN_bn2bin(const BIGNUM *a, unsigned char *to); >BIGNUM *BN_mpi2bn(const unsigned char *s,int len,BIGNUM *ret); >int BN_bn2mpi(const BIGNUM *a, unsigned char *to); >int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); >int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); >int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); >int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); >int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); >int BN_sqr(BIGNUM *r, const BIGNUM *a,BN_CTX *ctx); > > > > >void BN_set_negative(BIGNUM *b, int n); > > > > > > >int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, > BN_CTX *ctx); > >int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); >int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); >int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m); >int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); >int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m); >int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, > const BIGNUM *m, BN_CTX *ctx); >int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); >int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); >int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); >int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, BN_CTX *ctx); >int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); > >unsigned long BN_mod_word(const BIGNUM *a, unsigned long w); >unsigned long BN_div_word(BIGNUM *a, unsigned long w); >int BN_mul_word(BIGNUM *a, unsigned long w); >int BN_add_word(BIGNUM *a, unsigned long w); >int BN_sub_word(BIGNUM *a, unsigned long w); >int BN_set_word(BIGNUM *a, unsigned long w); >unsigned long BN_get_word(const BIGNUM *a); > >int BN_cmp(const BIGNUM *a, const BIGNUM *b); >void BN_free(BIGNUM *a); >int BN_is_bit_set(const BIGNUM *a, int n); >int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); >int BN_lshift1(BIGNUM *r, const BIGNUM *a); >int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,BN_CTX *ctx); > >int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, > const BIGNUM *m,BN_CTX *ctx); >int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, > const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); >int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, > const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *in_mont); >int BN_mod_exp_mont_word(BIGNUM *r, unsigned long a, const BIGNUM *p, > const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); >int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, > const BIGNUM *a2, const BIGNUM *p2,const BIGNUM *m, > BN_CTX *ctx,BN_MONT_CTX *m_ctx); >int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, > const BIGNUM *m,BN_CTX *ctx); > >int BN_mask_bits(BIGNUM *a,int n); > >int BN_print_fp(FILE *fp, const BIGNUM *a); > > >int BN_print(BIO *fp, const BIGNUM *a); > > > >int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); >int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); >int BN_rshift1(BIGNUM *r, const BIGNUM *a); >void BN_clear(BIGNUM *a); >BIGNUM *BN_dup(const BIGNUM *a); >int BN_ucmp(const BIGNUM *a, const BIGNUM *b); >int BN_set_bit(BIGNUM *a, int n); >int BN_clear_bit(BIGNUM *a, int n); >char * BN_bn2hex(const BIGNUM *a); >char * BN_bn2dec(const BIGNUM *a); >int BN_hex2bn(BIGNUM **a, const char *str); >int BN_dec2bn(BIGNUM **a, const char *str); >int BN_gcd(BIGNUM *r,const BIGNUM *a,const BIGNUM *b,BN_CTX *ctx); >int BN_kronecker(const BIGNUM *a,const BIGNUM *b,BN_CTX *ctx); >BIGNUM *BN_mod_inverse(BIGNUM *ret, > const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx); >BIGNUM *BN_mod_sqrt(BIGNUM *ret, > const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx); > > > >BIGNUM *BN_generate_prime(BIGNUM *ret,int bits,int safe, > const BIGNUM *add, const BIGNUM *rem, > void (*callback)(int,int,void *),void *cb_arg); >int BN_is_prime(const BIGNUM *p,int nchecks, > void (*callback)(int,int,void *), > BN_CTX *ctx,void *cb_arg); >int BN_is_prime_fasttest(const BIGNUM *p,int nchecks, > void (*callback)(int,int,void *),BN_CTX *ctx,void *cb_arg, > int do_trial_division); > > > >int BN_generate_prime_ex(BIGNUM *ret,int bits,int safe, const BIGNUM *add, > const BIGNUM *rem, BN_GENCB *cb); >int BN_is_prime_ex(const BIGNUM *p,int nchecks, BN_CTX *ctx, BN_GENCB *cb); >int BN_is_prime_fasttest_ex(const BIGNUM *p,int nchecks, BN_CTX *ctx, > int do_trial_division, BN_GENCB *cb); > >BN_MONT_CTX *BN_MONT_CTX_new(void ); >void BN_MONT_CTX_init(BN_MONT_CTX *ctx); >int BN_mod_mul_montgomery(BIGNUM *r,const BIGNUM *a,const BIGNUM *b, > BN_MONT_CTX *mont, BN_CTX *ctx); > > >int BN_from_montgomery(BIGNUM *r,const BIGNUM *a, > BN_MONT_CTX *mont, BN_CTX *ctx); >void BN_MONT_CTX_free(BN_MONT_CTX *mont); >int BN_MONT_CTX_set(BN_MONT_CTX *mont,const BIGNUM *mod,BN_CTX *ctx); >BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to,BN_MONT_CTX *from); >BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock, > const BIGNUM *mod, BN_CTX *ctx); > > > > > >BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); >void BN_BLINDING_free(BN_BLINDING *b); >int BN_BLINDING_update(BN_BLINDING *b,BN_CTX *ctx); >int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); >int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); >int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); >int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, BN_CTX *); >unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); >void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); >unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); >void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); >BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, > const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, > int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, > const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx), > BN_MONT_CTX *m_ctx); > > >void BN_set_params(int mul,int high,int low,int mont); >int BN_get_params(int which); > > >void BN_RECP_CTX_init(BN_RECP_CTX *recp); >BN_RECP_CTX *BN_RECP_CTX_new(void); >void BN_RECP_CTX_free(BN_RECP_CTX *recp); >int BN_RECP_CTX_set(BN_RECP_CTX *recp,const BIGNUM *rdiv,BN_CTX *ctx); >int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, > BN_RECP_CTX *recp,BN_CTX *ctx); >int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, > const BIGNUM *m, BN_CTX *ctx); >int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, > BN_RECP_CTX *recp, BN_CTX *ctx); ># 589 "/usr/include/openssl/bn.h" 3 4 >int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); > >int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); >int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, > const BIGNUM *p, BN_CTX *ctx); >int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, > BN_CTX *ctx); >int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, > BN_CTX *ctx); >int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, > const BIGNUM *p, BN_CTX *ctx); >int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, > const BIGNUM *p, BN_CTX *ctx); >int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, > BN_CTX *ctx); >int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, > BN_CTX *ctx); > > > > > > >int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const unsigned int p[]); > >int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, > const unsigned int p[], BN_CTX *ctx); >int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const unsigned int p[], > BN_CTX *ctx); >int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const unsigned int p[], > BN_CTX *ctx); >int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, > const unsigned int p[], BN_CTX *ctx); >int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, > const unsigned int p[], BN_CTX *ctx); >int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, > const unsigned int p[], BN_CTX *ctx); >int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, > const unsigned int p[], BN_CTX *ctx); >int BN_GF2m_poly2arr(const BIGNUM *a, unsigned int p[], int max); >int BN_GF2m_arr2poly(const unsigned int p[], BIGNUM *a); > > > >int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); >int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); >int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); >int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); >int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); > >const BIGNUM *BN_get0_nist_prime_192(void); >const BIGNUM *BN_get0_nist_prime_224(void); >const BIGNUM *BN_get0_nist_prime_256(void); >const BIGNUM *BN_get0_nist_prime_384(void); >const BIGNUM *BN_get0_nist_prime_521(void); > > > > > > >BIGNUM *bn_expand2(BIGNUM *a, int words); > >BIGNUM *bn_dup_expand(const BIGNUM *a, int words); ># 746 "/usr/include/openssl/bn.h" 3 4 >unsigned long bn_mul_add_words(unsigned long *rp, const unsigned long *ap, int num, unsigned long w); >unsigned long bn_mul_words(unsigned long *rp, const unsigned long *ap, int num, unsigned long w); >void bn_sqr_words(unsigned long *rp, const unsigned long *ap, int num); >unsigned long bn_div_words(unsigned long h, unsigned long l, unsigned long d); >unsigned long bn_add_words(unsigned long *rp, const unsigned long *ap, const unsigned long *bp,int num); >unsigned long bn_sub_words(unsigned long *rp, const unsigned long *ap, const unsigned long *bp,int num); > > >BIGNUM *get_rfc2409_prime_768(BIGNUM *bn); >BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn); > > >BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn); >BIGNUM *get_rfc3526_prime_2048(BIGNUM *bn); >BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn); >BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn); >BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn); >BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn); > >int BN_bntest_rand(BIGNUM *rnd, int bits, int top,int bottom); > > > > > >void ERR_load_BN_strings(void); ># 837 "/usr/include/openssl/bn.h" 3 4 >} ># 75 "/usr/include/openssl/asn1.h" 2 3 4 ># 83 "/usr/include/openssl/asn1.h" 3 4 >extern "C" { ># 161 "/usr/include/openssl/asn1.h" 3 4 >struct X509_algor_st; ># 170 "/usr/include/openssl/asn1.h" 3 4 >typedef struct asn1_ctx_st > { > unsigned char *p; > int eos; > int error; > int inf; > int tag; > int xclass; > long slen; > unsigned char *max; > unsigned char *q; > unsigned char **pp; > int line; > } ASN1_CTX; > >typedef struct asn1_const_ctx_st > { > const unsigned char *p; > int eos; > int error; > int inf; > int tag; > int xclass; > long slen; > const unsigned char *max; > const unsigned char *q; > const unsigned char **pp; > int line; > } ASN1_const_CTX; > > > > > > > >typedef struct asn1_object_st > { > const char *sn,*ln; > int nid; > int length; > unsigned char *data; > int flags; > } ASN1_OBJECT; ># 222 "/usr/include/openssl/asn1.h" 3 4 >typedef struct asn1_string_st > { > int length; > int type; > unsigned char *data; > > > > > long flags; > } ASN1_STRING; > > > > > > >typedef struct ASN1_ENCODING_st > { > unsigned char *enc; > long len; > int modified; > } ASN1_ENCODING; ># 255 "/usr/include/openssl/asn1.h" 3 4 >typedef struct asn1_string_table_st { > int nid; > long minsize; > long maxsize; > unsigned long mask; > unsigned long flags; >} ASN1_STRING_TABLE; > > ># 279 "/usr/include/openssl/asn1.h" 3 4 >typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; >typedef struct ASN1_ITEM_st ASN1_ITEM; >typedef struct ASN1_TLC_st ASN1_TLC; > >typedef struct ASN1_VALUE_st ASN1_VALUE; ># 340 "/usr/include/openssl/asn1.h" 3 4 >typedef void *d2i_of_void(void **,const unsigned char **,long); typedef int i2d_of_void(void *,unsigned char **); ># 380 "/usr/include/openssl/asn1.h" 3 4 >typedef const ASN1_ITEM ASN1_ITEM_EXP; ># 494 "/usr/include/openssl/asn1.h" 3 4 > > > > > >typedef struct asn1_type_st > { > int type; > union { > char *ptr; > ASN1_BOOLEAN boolean; > ASN1_STRING * asn1_string; > ASN1_OBJECT * object; > ASN1_INTEGER * integer; > ASN1_ENUMERATED * enumerated; > ASN1_BIT_STRING * bit_string; > ASN1_OCTET_STRING * octet_string; > ASN1_PRINTABLESTRING * printablestring; > ASN1_T61STRING * t61string; > ASN1_IA5STRING * ia5string; > ASN1_GENERALSTRING * generalstring; > ASN1_BMPSTRING * bmpstring; > ASN1_UNIVERSALSTRING * universalstring; > ASN1_UTCTIME * utctime; > ASN1_GENERALIZEDTIME * generalizedtime; > ASN1_VISIBLESTRING * visiblestring; > ASN1_UTF8STRING * utf8string; > > > ASN1_STRING * set; > ASN1_STRING * sequence; > } value; > } ASN1_TYPE; > > > > >typedef struct asn1_method_st > { > i2d_of_void *i2d; > d2i_of_void *d2i; > void *(*create)(void); > void (*destroy)(void *); > } ASN1_METHOD; > > >typedef struct asn1_header_st > { > ASN1_OCTET_STRING *header; > void *data; > ASN1_METHOD *meth; > } ASN1_HEADER; > > >typedef struct BIT_STRING_BITNAME_st { > int bitnum; > const char *lname; > const char *sname; >} BIT_STRING_BITNAME; ># 751 "/usr/include/openssl/asn1.h" 3 4 >ASN1_TYPE *ASN1_TYPE_new(void); void ASN1_TYPE_free(ASN1_TYPE *a); ASN1_TYPE *d2i_ASN1_TYPE(ASN1_TYPE **a, const unsigned char **in, long len); int i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **out); extern const ASN1_ITEM ASN1_ANY_it; > >int ASN1_TYPE_get(ASN1_TYPE *a); >void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); > >ASN1_OBJECT * ASN1_OBJECT_new(void ); >void ASN1_OBJECT_free(ASN1_OBJECT *a); >int i2d_ASN1_OBJECT(ASN1_OBJECT *a,unsigned char **pp); >ASN1_OBJECT * c2i_ASN1_OBJECT(ASN1_OBJECT **a,const unsigned char **pp, > long length); >ASN1_OBJECT * d2i_ASN1_OBJECT(ASN1_OBJECT **a,const unsigned char **pp, > long length); > >extern const ASN1_ITEM ASN1_OBJECT_it; > > > > >ASN1_STRING * ASN1_STRING_new(void); >void ASN1_STRING_free(ASN1_STRING *a); >ASN1_STRING * ASN1_STRING_dup(ASN1_STRING *a); >ASN1_STRING * ASN1_STRING_type_new(int type ); >int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b); > > >int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); >int ASN1_STRING_length(ASN1_STRING *x); >void ASN1_STRING_length_set(ASN1_STRING *x, int n); >int ASN1_STRING_type(ASN1_STRING *x); >unsigned char * ASN1_STRING_data(ASN1_STRING *x); > >ASN1_BIT_STRING *ASN1_BIT_STRING_new(void); void ASN1_BIT_STRING_free(ASN1_BIT_STRING *a); ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len); int i2d_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_BIT_STRING_it; >int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a,unsigned char **pp); >ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a,const unsigned char **pp, > long length); >int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, > int length ); >int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); >int ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *a, int n); > > >int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, > BIT_STRING_BITNAME *tbl, int indent); > >int ASN1_BIT_STRING_num_asc(char *name, BIT_STRING_BITNAME *tbl); >int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value, > BIT_STRING_BITNAME *tbl); > >int i2d_ASN1_BOOLEAN(int a,unsigned char **pp); >int d2i_ASN1_BOOLEAN(int *a,const unsigned char **pp,long length); > >ASN1_INTEGER *ASN1_INTEGER_new(void); void ASN1_INTEGER_free(ASN1_INTEGER *a); ASN1_INTEGER *d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len); int i2d_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **out); extern const ASN1_ITEM ASN1_INTEGER_it; >int i2c_ASN1_INTEGER(ASN1_INTEGER *a,unsigned char **pp); >ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a,const unsigned char **pp, > long length); >ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a,const unsigned char **pp, > long length); >ASN1_INTEGER * ASN1_INTEGER_dup(ASN1_INTEGER *x); >int ASN1_INTEGER_cmp(ASN1_INTEGER *x, ASN1_INTEGER *y); > >ASN1_ENUMERATED *ASN1_ENUMERATED_new(void); void ASN1_ENUMERATED_free(ASN1_ENUMERATED *a); ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len); int i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a, unsigned char **out); extern const ASN1_ITEM ASN1_ENUMERATED_it; > >int ASN1_UTCTIME_check(ASN1_UTCTIME *a); >ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s,time_t t); >int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); >int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); > > > > >int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *a); >ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,time_t t); >int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); > >ASN1_OCTET_STRING *ASN1_OCTET_STRING_new(void); void ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a); ASN1_OCTET_STRING *d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len); int i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_OCTET_STRING_it; >ASN1_OCTET_STRING * ASN1_OCTET_STRING_dup(ASN1_OCTET_STRING *a); >int ASN1_OCTET_STRING_cmp(ASN1_OCTET_STRING *a, ASN1_OCTET_STRING *b); >int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, int len); > >ASN1_VISIBLESTRING *ASN1_VISIBLESTRING_new(void); void ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a); ASN1_VISIBLESTRING *d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len); int i2d_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_VISIBLESTRING_it; >ASN1_UNIVERSALSTRING *ASN1_UNIVERSALSTRING_new(void); void ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a); ASN1_UNIVERSALSTRING *d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len); int i2d_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_UNIVERSALSTRING_it; >ASN1_UTF8STRING *ASN1_UTF8STRING_new(void); void ASN1_UTF8STRING_free(ASN1_UTF8STRING *a); ASN1_UTF8STRING *d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len); int i2d_ASN1_UTF8STRING(ASN1_UTF8STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_UTF8STRING_it; >ASN1_NULL *ASN1_NULL_new(void); void ASN1_NULL_free(ASN1_NULL *a); ASN1_NULL *d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len); int i2d_ASN1_NULL(ASN1_NULL *a, unsigned char **out); extern const ASN1_ITEM ASN1_NULL_it; >ASN1_BMPSTRING *ASN1_BMPSTRING_new(void); void ASN1_BMPSTRING_free(ASN1_BMPSTRING *a); ASN1_BMPSTRING *d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len); int i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_BMPSTRING_it; > >int UTF8_getc(const unsigned char *str, int len, unsigned long *val); >int UTF8_putc(unsigned char *str, int len, unsigned long value); > >ASN1_STRING *ASN1_PRINTABLE_new(void); void ASN1_PRINTABLE_free(ASN1_STRING *a); ASN1_STRING *d2i_ASN1_PRINTABLE(ASN1_STRING **a, const unsigned char **in, long len); int i2d_ASN1_PRINTABLE(ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_PRINTABLE_it; > >ASN1_STRING *DIRECTORYSTRING_new(void); void DIRECTORYSTRING_free(ASN1_STRING *a); ASN1_STRING *d2i_DIRECTORYSTRING(ASN1_STRING **a, const unsigned char **in, long len); int i2d_DIRECTORYSTRING(ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM DIRECTORYSTRING_it; >ASN1_STRING *DISPLAYTEXT_new(void); void DISPLAYTEXT_free(ASN1_STRING *a); ASN1_STRING *d2i_DISPLAYTEXT(ASN1_STRING **a, const unsigned char **in, long len); int i2d_DISPLAYTEXT(ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM DISPLAYTEXT_it; >ASN1_PRINTABLESTRING *ASN1_PRINTABLESTRING_new(void); void ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a); ASN1_PRINTABLESTRING *d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len); int i2d_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_PRINTABLESTRING_it; >ASN1_T61STRING *ASN1_T61STRING_new(void); void ASN1_T61STRING_free(ASN1_T61STRING *a); ASN1_T61STRING *d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len); int i2d_ASN1_T61STRING(ASN1_T61STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_T61STRING_it; >ASN1_IA5STRING *ASN1_IA5STRING_new(void); void ASN1_IA5STRING_free(ASN1_IA5STRING *a); ASN1_IA5STRING *d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len); int i2d_ASN1_IA5STRING(ASN1_IA5STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_IA5STRING_it; >ASN1_GENERALSTRING *ASN1_GENERALSTRING_new(void); void ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a); ASN1_GENERALSTRING *d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len); int i2d_ASN1_GENERALSTRING(ASN1_GENERALSTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_GENERALSTRING_it; >ASN1_UTCTIME *ASN1_UTCTIME_new(void); void ASN1_UTCTIME_free(ASN1_UTCTIME *a); ASN1_UTCTIME *d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len); int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **out); extern const ASN1_ITEM ASN1_UTCTIME_it; >ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_new(void); void ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a); ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len); int i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **out); extern const ASN1_ITEM ASN1_GENERALIZEDTIME_it; >ASN1_TIME *ASN1_TIME_new(void); void ASN1_TIME_free(ASN1_TIME *a); ASN1_TIME *d2i_ASN1_TIME(ASN1_TIME **a, const unsigned char **in, long len); int i2d_ASN1_TIME(ASN1_TIME *a, unsigned char **out); extern const ASN1_ITEM ASN1_TIME_it; > >extern const ASN1_ITEM ASN1_OCTET_STRING_NDEF_it; > >ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s,time_t t); >int ASN1_TIME_check(ASN1_TIME *t); >ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME **out); > >int i2d_ASN1_SET(STACK *a, unsigned char **pp, > i2d_of_void *i2d, int ex_tag, int ex_class, int is_set); >STACK * d2i_ASN1_SET(STACK **a, const unsigned char **pp, long length, > d2i_of_void *d2i, void (*free_func)(void *), > int ex_tag, int ex_class); > > >int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a); >int a2i_ASN1_INTEGER(BIO *bp,ASN1_INTEGER *bs,char *buf,int size); >int i2a_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *a); >int a2i_ASN1_ENUMERATED(BIO *bp,ASN1_ENUMERATED *bs,char *buf,int size); >int i2a_ASN1_OBJECT(BIO *bp,ASN1_OBJECT *a); >int a2i_ASN1_STRING(BIO *bp,ASN1_STRING *bs,char *buf,int size); >int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type); > >int i2t_ASN1_OBJECT(char *buf,int buf_len,ASN1_OBJECT *a); > >int a2d_ASN1_OBJECT(unsigned char *out,int olen, const char *buf, int num); >ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data,int len, > const char *sn, const char *ln); > >int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); >long ASN1_INTEGER_get(ASN1_INTEGER *a); >ASN1_INTEGER *BN_to_ASN1_INTEGER(BIGNUM *bn, ASN1_INTEGER *ai); >BIGNUM *ASN1_INTEGER_to_BN(ASN1_INTEGER *ai,BIGNUM *bn); > >int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); >long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a); >ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai); >BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai,BIGNUM *bn); > > > >int ASN1_PRINTABLE_type(const unsigned char *s, int max); > >int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass); >ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp, > long length, int Ptag, int Pclass); >unsigned long ASN1_tag2bit(int tag); > >ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a,const unsigned char **pp, > long length,int type); > > >int asn1_Finish(ASN1_CTX *c); >int asn1_const_Finish(ASN1_const_CTX *c); > > >int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, > int *pclass, long omax); >int ASN1_check_infinite_end(unsigned char **p,long len); >int ASN1_const_check_infinite_end(const unsigned char **p,long len); >void ASN1_put_object(unsigned char **pp, int constructed, int length, > int tag, int xclass); >int ASN1_put_eoc(unsigned char **pp); >int ASN1_object_size(int constructed, int length, int tag); > > >void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, char *x); ># 927 "/usr/include/openssl/asn1.h" 3 4 >void *ASN1_item_dup(const ASN1_ITEM *it, void *x); > > >void *ASN1_d2i_fp(void *(*xnew)(void), d2i_of_void *d2i, FILE *in, void **x); > > > > > > > >void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); >int ASN1_i2d_fp(i2d_of_void *i2d,FILE *out,void *x); ># 951 "/usr/include/openssl/asn1.h" 3 4 >int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); >int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); > > >int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in); > > >void *ASN1_d2i_bio(void *(*xnew)(void), d2i_of_void *d2i, BIO *in, void **x); > > > > > > > >void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); >int ASN1_i2d_bio(i2d_of_void *i2d,BIO *out, unsigned char *x); ># 979 "/usr/include/openssl/asn1.h" 3 4 >int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); >int ASN1_UTCTIME_print(BIO *fp,ASN1_UTCTIME *a); >int ASN1_GENERALIZEDTIME_print(BIO *fp,ASN1_GENERALIZEDTIME *a); >int ASN1_TIME_print(BIO *fp,ASN1_TIME *a); >int ASN1_STRING_print(BIO *bp,ASN1_STRING *v); >int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); >int ASN1_parse(BIO *bp,const unsigned char *pp,long len,int indent); >int ASN1_parse_dump(BIO *bp,const unsigned char *pp,long len,int indent,int dump); > >const char *ASN1_tag2str(int tag); > > >int i2d_ASN1_HEADER(ASN1_HEADER *a,unsigned char **pp); >ASN1_HEADER *d2i_ASN1_HEADER(ASN1_HEADER **a,const unsigned char **pp, long length); >ASN1_HEADER *ASN1_HEADER_new(void ); >void ASN1_HEADER_free(ASN1_HEADER *a); > >int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); > > >ASN1_METHOD *X509_asn1_meth(void); >ASN1_METHOD *RSAPrivateKey_asn1_meth(void); >ASN1_METHOD *ASN1_IA5STRING_asn1_meth(void); >ASN1_METHOD *ASN1_BIT_STRING_asn1_meth(void); > >int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, > unsigned char *data, int len); >int ASN1_TYPE_get_octetstring(ASN1_TYPE *a, > unsigned char *data, int max_len); >int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, > unsigned char *data, int len); >int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a,long *num, > unsigned char *data, int max_len); > >STACK *ASN1_seq_unpack(const unsigned char *buf, int len, > d2i_of_void *d2i, void (*free_func)(void *)); >unsigned char *ASN1_seq_pack(STACK *safes, i2d_of_void *i2d, > unsigned char **buf, int *len ); >void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i); >void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it); >ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, > ASN1_OCTET_STRING **oct); > > > > > > >ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); > >void ASN1_STRING_set_default_mask(unsigned long mask); >int ASN1_STRING_set_default_mask_asc(char *p); >unsigned long ASN1_STRING_get_default_mask(void); >int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, > int inform, unsigned long mask); >int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, > int inform, unsigned long mask, > long minsize, long maxsize); > >ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, > const unsigned char *in, int inlen, int inform, int nid); >ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); >int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); >void ASN1_STRING_TABLE_cleanup(void); > > > > >ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); >void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); >ASN1_VALUE * ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, long len, const ASN1_ITEM *it); >int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); >int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); > >void ASN1_add_oid_module(void); > >ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf); >ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); > > > > > >void ERR_load_ASN1_strings(void); ># 1276 "/usr/include/openssl/asn1.h" 3 4 >} ># 961 "/usr/include/openssl/objects.h" 2 3 4 ># 976 "/usr/include/openssl/objects.h" 3 4 >extern "C" { > > >typedef struct obj_name_st > { > int type; > int alias; > const char *name; > const char *data; > } OBJ_NAME; > > > > >int OBJ_NAME_init(void); >int OBJ_NAME_new_index(unsigned long (*hash_func)(const char *), > int (*cmp_func)(const char *, const char *), > void (*free_func)(const char *, int, const char *)); >const char *OBJ_NAME_get(const char *name,int type); >int OBJ_NAME_add(const char *name,int type,const char *data); >int OBJ_NAME_remove(const char *name,int type); >void OBJ_NAME_cleanup(int type); >void OBJ_NAME_do_all(int type,void (*fn)(const OBJ_NAME *,void *arg), > void *arg); >void OBJ_NAME_do_all_sorted(int type,void (*fn)(const OBJ_NAME *,void *arg), > void *arg); > >ASN1_OBJECT * OBJ_dup(const ASN1_OBJECT *o); >ASN1_OBJECT * OBJ_nid2obj(int n); >const char * OBJ_nid2ln(int n); >const char * OBJ_nid2sn(int n); >int OBJ_obj2nid(const ASN1_OBJECT *o); >ASN1_OBJECT * OBJ_txt2obj(const char *s, int no_name); >int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); >int OBJ_txt2nid(const char *s); >int OBJ_ln2nid(const char *s); >int OBJ_sn2nid(const char *s); >int OBJ_cmp(const ASN1_OBJECT *a,const ASN1_OBJECT *b); >const char * OBJ_bsearch(const char *key,const char *base,int num,int size, > int (*cmp)(const void *, const void *)); >const char * OBJ_bsearch_ex(const char *key,const char *base,int num, > int size, int (*cmp)(const void *, const void *), int flags); > >int OBJ_new_nid(int num); >int OBJ_add_object(const ASN1_OBJECT *obj); >int OBJ_create(const char *oid,const char *sn,const char *ln); >void OBJ_cleanup(void ); >int OBJ_create_objects(BIO *in); > > > > > >void ERR_load_OBJ_strings(void); ># 1047 "/usr/include/openssl/objects.h" 3 4 >} ># 95 "/usr/include/openssl/evp.h" 2 3 4 ># 120 "/usr/include/openssl/evp.h" 3 4 >extern "C" { > > > > > >struct evp_pkey_st > { > int type; > int save_type; > int references; > union { > char *ptr; > > struct rsa_st *rsa; > > > struct dsa_st *dsa; > > > struct dh_st *dh; > > } pkey; > int save_parameters; > STACK *attributes; > } ; ># 220 "/usr/include/openssl/evp.h" 3 4 >struct env_md_st > { > int type; > int pkey_type; > int md_size; > unsigned long flags; > int (*init)(EVP_MD_CTX *ctx); > int (*update)(EVP_MD_CTX *ctx,const void *data,size_t count); > int (*final)(EVP_MD_CTX *ctx,unsigned char *md); > int (*copy)(EVP_MD_CTX *to,const EVP_MD_CTX *from); > int (*cleanup)(EVP_MD_CTX *ctx); > > > int (*sign)(int type, const unsigned char *m, unsigned int m_length, > unsigned char *sigret, unsigned int *siglen, void *key); > int (*verify)(int type, const unsigned char *m, unsigned int m_length, > const unsigned char *sigbuf, unsigned int siglen, > void *key); > int required_pkey_type[5]; > int block_size; > int ctx_size; > } ; > >typedef int evp_sign_method(int type,const unsigned char *m, > unsigned int m_length,unsigned char *sigret, > unsigned int *siglen, void *key); >typedef int evp_verify_method(int type,const unsigned char *m, > unsigned int m_length,const unsigned char *sigbuf, > unsigned int siglen, void *key); ># 280 "/usr/include/openssl/evp.h" 3 4 >struct env_md_ctx_st > { > const EVP_MD *digest; > ENGINE *engine; > unsigned long flags; > void *md_data; > } ; ># 297 "/usr/include/openssl/evp.h" 3 4 >struct evp_cipher_st > { > int nid; > int block_size; > int key_len; > int iv_len; > unsigned long flags; > int (*init)(EVP_CIPHER_CTX *ctx, const unsigned char *key, > const unsigned char *iv, int enc); > int (*do_cipher)(EVP_CIPHER_CTX *ctx, unsigned char *out, > const unsigned char *in, unsigned int inl); > int (*cleanup)(EVP_CIPHER_CTX *); > int ctx_size; > int (*set_asn1_parameters)(EVP_CIPHER_CTX *, ASN1_TYPE *); > int (*get_asn1_parameters)(EVP_CIPHER_CTX *, ASN1_TYPE *); > int (*ctrl)(EVP_CIPHER_CTX *, int type, int arg, void *ptr); > void *app_data; > } ; ># 351 "/usr/include/openssl/evp.h" 3 4 >typedef struct evp_cipher_info_st > { > const EVP_CIPHER *cipher; > unsigned char iv[16]; > } EVP_CIPHER_INFO; > >struct evp_cipher_ctx_st > { > const EVP_CIPHER *cipher; > ENGINE *engine; > int encrypt; > int buf_len; > > unsigned char oiv[16]; > unsigned char iv[16]; > unsigned char buf[32]; > int num; > > void *app_data; > int key_len; > unsigned long flags; > void *cipher_data; > int final_used; > int block_mask; > unsigned char final[32]; > } ; > >typedef struct evp_Encode_Ctx_st > { > int num; > int length; > > > > > unsigned char enc_data[80]; > int line_num; > int expect_nl; > } EVP_ENCODE_CTX; > > >typedef int (EVP_PBE_KEYGEN)(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, > ASN1_TYPE *param, const EVP_CIPHER *cipher, > const EVP_MD *md, int en_de); ># 418 "/usr/include/openssl/evp.h" 3 4 >int EVP_MD_type(const EVP_MD *md); > > >int EVP_MD_pkey_type(const EVP_MD *md); >int EVP_MD_size(const EVP_MD *md); >int EVP_MD_block_size(const EVP_MD *md); > >const EVP_MD * EVP_MD_CTX_md(const EVP_MD_CTX *ctx); > > > > >int EVP_CIPHER_nid(const EVP_CIPHER *cipher); > >int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); >int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); >int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); >unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); > > >const EVP_CIPHER * EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); >int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); >int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); >int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); >int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); >void * EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); >void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); > >unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx); ># 472 "/usr/include/openssl/evp.h" 3 4 >int EVP_Cipher(EVP_CIPHER_CTX *c, > unsigned char *out, > const unsigned char *in, > unsigned int inl); ># 486 "/usr/include/openssl/evp.h" 3 4 >void EVP_MD_CTX_init(EVP_MD_CTX *ctx); >int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx); >EVP_MD_CTX *EVP_MD_CTX_create(void); >void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); >int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out,const EVP_MD_CTX *in); >void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); >void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); >int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx,int flags); >int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); >int EVP_DigestUpdate(EVP_MD_CTX *ctx,const void *d, > size_t cnt); >int EVP_DigestFinal_ex(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s); >int EVP_Digest(const void *data, size_t count, > unsigned char *md, unsigned int *size, const EVP_MD *type, ENGINE *impl); > >int EVP_MD_CTX_copy(EVP_MD_CTX *out,const EVP_MD_CTX *in); >int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); >int EVP_DigestFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s); > >int EVP_read_pw_string(char *buf,int length,const char *prompt,int verify); >void EVP_set_pw_prompt(const char *prompt); >char * EVP_get_pw_prompt(void); > >int EVP_BytesToKey(const EVP_CIPHER *type,const EVP_MD *md, > const unsigned char *salt, const unsigned char *data, > int datal, int count, unsigned char *key,unsigned char *iv); > >int EVP_EncryptInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, > const unsigned char *key, const unsigned char *iv); >int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl, > const unsigned char *key, const unsigned char *iv); >int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, > int *outl, const unsigned char *in, int inl); >int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); >int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); > >int EVP_DecryptInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, > const unsigned char *key, const unsigned char *iv); >int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl, > const unsigned char *key, const unsigned char *iv); >int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, > int *outl, const unsigned char *in, int inl); >int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); >int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); > >int EVP_CipherInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, > const unsigned char *key,const unsigned char *iv, > int enc); >int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *cipher, ENGINE *impl, > const unsigned char *key,const unsigned char *iv, > int enc); >int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, > int *outl, const unsigned char *in, int inl); >int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); >int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); > >int EVP_SignFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s, > EVP_PKEY *pkey); > >int EVP_VerifyFinal(EVP_MD_CTX *ctx,const unsigned char *sigbuf, > unsigned int siglen,EVP_PKEY *pkey); > >int EVP_OpenInit(EVP_CIPHER_CTX *ctx,const EVP_CIPHER *type, > const unsigned char *ek, int ekl, const unsigned char *iv, > EVP_PKEY *priv); >int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); > >int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, > unsigned char **ek, int *ekl, unsigned char *iv, > EVP_PKEY **pubk, int npubk); >int EVP_SealFinal(EVP_CIPHER_CTX *ctx,unsigned char *out,int *outl); > >void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); >void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx,unsigned char *out,int *outl, > const unsigned char *in,int inl); >void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx,unsigned char *out,int *outl); >int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); > >void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); >int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx,unsigned char *out,int *outl, > const unsigned char *in, int inl); >int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned > char *out, int *outl); >int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); > >void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a); >int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a); >EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); >void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a); >int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); >int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); >int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); >int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); > > >BIO_METHOD *BIO_f_md(void); >BIO_METHOD *BIO_f_base64(void); >BIO_METHOD *BIO_f_cipher(void); >BIO_METHOD *BIO_f_reliable(void); >void BIO_set_cipher(BIO *b,const EVP_CIPHER *c,const unsigned char *k, > const unsigned char *i, int enc); > > >const EVP_MD *EVP_md_null(void); > >const EVP_MD *EVP_md2(void); > > >const EVP_MD *EVP_md4(void); > > >const EVP_MD *EVP_md5(void); > > >const EVP_MD *EVP_sha(void); >const EVP_MD *EVP_sha1(void); >const EVP_MD *EVP_dss(void); >const EVP_MD *EVP_dss1(void); >const EVP_MD *EVP_ecdsa(void); > > >const EVP_MD *EVP_sha224(void); >const EVP_MD *EVP_sha256(void); > > >const EVP_MD *EVP_sha384(void); >const EVP_MD *EVP_sha512(void); > > >const EVP_MD *EVP_ripemd160(void); > >const EVP_CIPHER *EVP_enc_null(void); > >const EVP_CIPHER *EVP_des_ecb(void); >const EVP_CIPHER *EVP_des_ede(void); >const EVP_CIPHER *EVP_des_ede3(void); >const EVP_CIPHER *EVP_des_ede_ecb(void); >const EVP_CIPHER *EVP_des_ede3_ecb(void); >const EVP_CIPHER *EVP_des_cfb64(void); > >const EVP_CIPHER *EVP_des_cfb1(void); >const EVP_CIPHER *EVP_des_cfb8(void); >const EVP_CIPHER *EVP_des_ede_cfb64(void); > > > > > >const EVP_CIPHER *EVP_des_ede3_cfb64(void); > >const EVP_CIPHER *EVP_des_ede3_cfb1(void); >const EVP_CIPHER *EVP_des_ede3_cfb8(void); >const EVP_CIPHER *EVP_des_ofb(void); >const EVP_CIPHER *EVP_des_ede_ofb(void); >const EVP_CIPHER *EVP_des_ede3_ofb(void); >const EVP_CIPHER *EVP_des_cbc(void); >const EVP_CIPHER *EVP_des_ede_cbc(void); >const EVP_CIPHER *EVP_des_ede3_cbc(void); >const EVP_CIPHER *EVP_desx_cbc(void); ># 656 "/usr/include/openssl/evp.h" 3 4 >const EVP_CIPHER *EVP_rc4(void); >const EVP_CIPHER *EVP_rc4_40(void); > > >const EVP_CIPHER *EVP_rc2_ecb(void); >const EVP_CIPHER *EVP_rc2_cbc(void); >const EVP_CIPHER *EVP_rc2_40_cbc(void); >const EVP_CIPHER *EVP_rc2_64_cbc(void); >const EVP_CIPHER *EVP_rc2_cfb64(void); > >const EVP_CIPHER *EVP_rc2_ofb(void); > > >const EVP_CIPHER *EVP_bf_ecb(void); >const EVP_CIPHER *EVP_bf_cbc(void); >const EVP_CIPHER *EVP_bf_cfb64(void); > >const EVP_CIPHER *EVP_bf_ofb(void); > > >const EVP_CIPHER *EVP_cast5_ecb(void); >const EVP_CIPHER *EVP_cast5_cbc(void); >const EVP_CIPHER *EVP_cast5_cfb64(void); > >const EVP_CIPHER *EVP_cast5_ofb(void); > > >const EVP_CIPHER *EVP_aes_128_ecb(void); >const EVP_CIPHER *EVP_aes_128_cbc(void); >const EVP_CIPHER *EVP_aes_128_cfb1(void); >const EVP_CIPHER *EVP_aes_128_cfb8(void); >const EVP_CIPHER *EVP_aes_128_cfb128(void); > >const EVP_CIPHER *EVP_aes_128_ofb(void); > > > >const EVP_CIPHER *EVP_aes_192_ecb(void); >const EVP_CIPHER *EVP_aes_192_cbc(void); >const EVP_CIPHER *EVP_aes_192_cfb1(void); >const EVP_CIPHER *EVP_aes_192_cfb8(void); >const EVP_CIPHER *EVP_aes_192_cfb128(void); > >const EVP_CIPHER *EVP_aes_192_ofb(void); > > > >const EVP_CIPHER *EVP_aes_256_ecb(void); >const EVP_CIPHER *EVP_aes_256_cbc(void); >const EVP_CIPHER *EVP_aes_256_cfb1(void); >const EVP_CIPHER *EVP_aes_256_cfb8(void); >const EVP_CIPHER *EVP_aes_256_cfb128(void); > >const EVP_CIPHER *EVP_aes_256_ofb(void); > > > > > >const EVP_CIPHER *EVP_camellia_128_ecb(void); >const EVP_CIPHER *EVP_camellia_128_cbc(void); >const EVP_CIPHER *EVP_camellia_128_cfb1(void); >const EVP_CIPHER *EVP_camellia_128_cfb8(void); >const EVP_CIPHER *EVP_camellia_128_cfb128(void); > >const EVP_CIPHER *EVP_camellia_128_ofb(void); >const EVP_CIPHER *EVP_camellia_192_ecb(void); >const EVP_CIPHER *EVP_camellia_192_cbc(void); >const EVP_CIPHER *EVP_camellia_192_cfb1(void); >const EVP_CIPHER *EVP_camellia_192_cfb8(void); >const EVP_CIPHER *EVP_camellia_192_cfb128(void); > >const EVP_CIPHER *EVP_camellia_192_ofb(void); >const EVP_CIPHER *EVP_camellia_256_ecb(void); >const EVP_CIPHER *EVP_camellia_256_cbc(void); >const EVP_CIPHER *EVP_camellia_256_cfb1(void); >const EVP_CIPHER *EVP_camellia_256_cfb8(void); >const EVP_CIPHER *EVP_camellia_256_cfb128(void); > >const EVP_CIPHER *EVP_camellia_256_ofb(void); > > > >const EVP_CIPHER *EVP_seed_ecb(void); >const EVP_CIPHER *EVP_seed_cbc(void); >const EVP_CIPHER *EVP_seed_cfb128(void); > >const EVP_CIPHER *EVP_seed_ofb(void); > > >void OPENSSL_add_all_algorithms_noconf(void); >void OPENSSL_add_all_algorithms_conf(void); ># 757 "/usr/include/openssl/evp.h" 3 4 >void OpenSSL_add_all_ciphers(void); >void OpenSSL_add_all_digests(void); > > > > >int EVP_add_cipher(const EVP_CIPHER *cipher); >int EVP_add_digest(const EVP_MD *digest); > >const EVP_CIPHER *EVP_get_cipherbyname(const char *name); >const EVP_MD *EVP_get_digestbyname(const char *name); >void EVP_cleanup(void); > >int EVP_PKEY_decrypt(unsigned char *dec_key, > const unsigned char *enc_key,int enc_key_len, > EVP_PKEY *private_key); >int EVP_PKEY_encrypt(unsigned char *enc_key, > const unsigned char *key,int key_len, > EVP_PKEY *pub_key); >int EVP_PKEY_type(int type); >int EVP_PKEY_bits(EVP_PKEY *pkey); >int EVP_PKEY_size(EVP_PKEY *pkey); >int EVP_PKEY_assign(EVP_PKEY *pkey,int type,char *key); > > >struct rsa_st; >int EVP_PKEY_set1_RSA(EVP_PKEY *pkey,struct rsa_st *key); >struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); > > >struct dsa_st; >int EVP_PKEY_set1_DSA(EVP_PKEY *pkey,struct dsa_st *key); >struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); > > >struct dh_st; >int EVP_PKEY_set1_DH(EVP_PKEY *pkey,struct dh_st *key); >struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); > > >EVP_PKEY * EVP_PKEY_new(void); >void EVP_PKEY_free(EVP_PKEY *pkey); > >EVP_PKEY * d2i_PublicKey(int type,EVP_PKEY **a, const unsigned char **pp, > long length); >int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); > >EVP_PKEY * d2i_PrivateKey(int type,EVP_PKEY **a, const unsigned char **pp, > long length); >EVP_PKEY * d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, > long length); >int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); > >int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); >int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); >int EVP_PKEY_save_parameters(EVP_PKEY *pkey,int mode); >int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); > >int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); > >int EVP_CIPHER_type(const EVP_CIPHER *ctx); > > >int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); >int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); > > >int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c,ASN1_TYPE *type); >int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c,ASN1_TYPE *type); > > >int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, > ASN1_TYPE *param, const EVP_CIPHER *cipher, const EVP_MD *md, > int en_de); >int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, > const unsigned char *salt, int saltlen, int iter, > int keylen, unsigned char *out); >int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, > ASN1_TYPE *param, const EVP_CIPHER *cipher, const EVP_MD *md, > int en_de); > >void PKCS5_PBE_add(void); > >int EVP_PBE_CipherInit (ASN1_OBJECT *pbe_obj, const char *pass, int passlen, > ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); >int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, > EVP_PBE_KEYGEN *keygen); >void EVP_PBE_cleanup(void); > > > > > >void ERR_load_EVP_strings(void); ># 941 "/usr/include/openssl/evp.h" 3 4 >} ># 74 "/usr/include/openssl/x509.h" 2 3 4 ># 87 "/usr/include/openssl/x509.h" 3 4 ># 1 "/usr/include/openssl/rsa.h" 1 3 4 ># 78 "/usr/include/openssl/rsa.h" 3 4 >extern "C" { > > > > > > >struct rsa_meth_st > { > const char *name; > int (*rsa_pub_enc)(int flen,const unsigned char *from, > unsigned char *to, > RSA *rsa,int padding); > int (*rsa_pub_dec)(int flen,const unsigned char *from, > unsigned char *to, > RSA *rsa,int padding); > int (*rsa_priv_enc)(int flen,const unsigned char *from, > unsigned char *to, > RSA *rsa,int padding); > int (*rsa_priv_dec)(int flen,const unsigned char *from, > unsigned char *to, > RSA *rsa,int padding); > int (*rsa_mod_exp)(BIGNUM *r0,const BIGNUM *I,RSA *rsa,BN_CTX *ctx); > int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, > const BIGNUM *m, BN_CTX *ctx, > BN_MONT_CTX *m_ctx); > int (*init)(RSA *rsa); > int (*finish)(RSA *rsa); > int flags; > char *app_data; > > > > > > > > int (*rsa_sign)(int type, > const unsigned char *m, unsigned int m_length, > unsigned char *sigret, unsigned int *siglen, const RSA *rsa); > int (*rsa_verify)(int dtype, > const unsigned char *m, unsigned int m_length, > unsigned char *sigbuf, unsigned int siglen, const RSA *rsa); > > > > > int (*rsa_keygen)(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); > }; > >struct rsa_st > { > > > int pad; > long version; > const RSA_METHOD *meth; > > ENGINE *engine; > BIGNUM *n; > BIGNUM *e; > BIGNUM *d; > BIGNUM *p; > BIGNUM *q; > BIGNUM *dmp1; > BIGNUM *dmq1; > BIGNUM *iqmp; > > CRYPTO_EX_DATA ex_data; > int references; > int flags; > > > BN_MONT_CTX *_method_mod_n; > BN_MONT_CTX *_method_mod_p; > BN_MONT_CTX *_method_mod_q; > > > > char *bignum_data; > BN_BLINDING *blinding; > BN_BLINDING *mt_blinding; > }; ># 231 "/usr/include/openssl/rsa.h" 3 4 >RSA * RSA_new(void); >RSA * RSA_new_method(ENGINE *engine); >int RSA_size(const RSA *); > > > >RSA * RSA_generate_key(int bits, unsigned long e,void > (*callback)(int,int,void *),void *cb_arg); > > > >int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); > >int RSA_check_key(const RSA *); > >int RSA_public_encrypt(int flen, const unsigned char *from, > unsigned char *to, RSA *rsa,int padding); >int RSA_private_encrypt(int flen, const unsigned char *from, > unsigned char *to, RSA *rsa,int padding); >int RSA_public_decrypt(int flen, const unsigned char *from, > unsigned char *to, RSA *rsa,int padding); >int RSA_private_decrypt(int flen, const unsigned char *from, > unsigned char *to, RSA *rsa,int padding); >void RSA_free (RSA *r); > >int RSA_up_ref(RSA *r); > >int RSA_flags(const RSA *r); > >void RSA_set_default_method(const RSA_METHOD *meth); >const RSA_METHOD *RSA_get_default_method(void); >const RSA_METHOD *RSA_get_method(const RSA *rsa); >int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); > > >int RSA_memory_lock(RSA *r); > > >const RSA_METHOD *RSA_PKCS1_SSLeay(void); > >const RSA_METHOD *RSA_null_method(void); > >RSA *d2i_RSAPublicKey(RSA **a, const unsigned char **in, long len); int i2d_RSAPublicKey(const RSA *a, unsigned char **out); extern const ASN1_ITEM RSAPublicKey_it; >RSA *d2i_RSAPrivateKey(RSA **a, const unsigned char **in, long len); int i2d_RSAPrivateKey(const RSA *a, unsigned char **out); extern const ASN1_ITEM RSAPrivateKey_it; > > >int RSA_print_fp(FILE *fp, const RSA *r,int offset); > > > >int RSA_print(BIO *bp, const RSA *r,int offset); > > >int i2d_RSA_NET(const RSA *a, unsigned char **pp, > int (*cb)(char *buf, int len, const char *prompt, int verify), > int sgckey); >RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, > int (*cb)(char *buf, int len, const char *prompt, int verify), > int sgckey); > >int i2d_Netscape_RSA(const RSA *a, unsigned char **pp, > int (*cb)(char *buf, int len, const char *prompt, > int verify)); >RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, > int (*cb)(char *buf, int len, const char *prompt, > int verify)); > > > >int RSA_sign(int type, const unsigned char *m, unsigned int m_length, > unsigned char *sigret, unsigned int *siglen, RSA *rsa); >int RSA_verify(int type, const unsigned char *m, unsigned int m_length, > unsigned char *sigbuf, unsigned int siglen, RSA *rsa); > > > >int RSA_sign_ASN1_OCTET_STRING(int type, > const unsigned char *m, unsigned int m_length, > unsigned char *sigret, unsigned int *siglen, RSA *rsa); >int RSA_verify_ASN1_OCTET_STRING(int type, > const unsigned char *m, unsigned int m_length, > unsigned char *sigbuf, unsigned int siglen, RSA *rsa); > >int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); >void RSA_blinding_off(RSA *rsa); >BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); > >int RSA_padding_add_PKCS1_type_1(unsigned char *to,int tlen, > const unsigned char *f,int fl); >int RSA_padding_check_PKCS1_type_1(unsigned char *to,int tlen, > const unsigned char *f,int fl,int rsa_len); >int RSA_padding_add_PKCS1_type_2(unsigned char *to,int tlen, > const unsigned char *f,int fl); >int RSA_padding_check_PKCS1_type_2(unsigned char *to,int tlen, > const unsigned char *f,int fl,int rsa_len); >int PKCS1_MGF1(unsigned char *mask, long len, > const unsigned char *seed, long seedlen, const EVP_MD *dgst); >int RSA_padding_add_PKCS1_OAEP(unsigned char *to,int tlen, > const unsigned char *f,int fl, > const unsigned char *p,int pl); >int RSA_padding_check_PKCS1_OAEP(unsigned char *to,int tlen, > const unsigned char *f,int fl,int rsa_len, > const unsigned char *p,int pl); >int RSA_padding_add_SSLv23(unsigned char *to,int tlen, > const unsigned char *f,int fl); >int RSA_padding_check_SSLv23(unsigned char *to,int tlen, > const unsigned char *f,int fl,int rsa_len); >int RSA_padding_add_none(unsigned char *to,int tlen, > const unsigned char *f,int fl); >int RSA_padding_check_none(unsigned char *to,int tlen, > const unsigned char *f,int fl,int rsa_len); >int RSA_padding_add_X931(unsigned char *to,int tlen, > const unsigned char *f,int fl); >int RSA_padding_check_X931(unsigned char *to,int tlen, > const unsigned char *f,int fl,int rsa_len); >int RSA_X931_hash_id(int nid); > >int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, > const EVP_MD *Hash, const unsigned char *EM, int sLen); >int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, > const unsigned char *mHash, > const EVP_MD *Hash, int sLen); > >int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, > CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); >int RSA_set_ex_data(RSA *r,int idx,void *arg); >void *RSA_get_ex_data(const RSA *r, int idx); > >RSA *RSAPublicKey_dup(RSA *rsa); >RSA *RSAPrivateKey_dup(RSA *rsa); > > > > > >void ERR_load_RSA_strings(void); ># 453 "/usr/include/openssl/rsa.h" 3 4 >} ># 88 "/usr/include/openssl/x509.h" 2 3 4 > > ># 1 "/usr/include/openssl/dsa.h" 1 3 4 ># 68 "/usr/include/openssl/dsa.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 69 "/usr/include/openssl/dsa.h" 2 3 4 ># 83 "/usr/include/openssl/dsa.h" 3 4 ># 1 "/usr/include/openssl/dh.h" 1 3 4 ># 62 "/usr/include/openssl/dh.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 63 "/usr/include/openssl/dh.h" 2 3 4 ># 90 "/usr/include/openssl/dh.h" 3 4 >extern "C" { > > > > > > >struct dh_method > { > const char *name; > > int (*generate_key)(DH *dh); > int (*compute_key)(unsigned char *key,const BIGNUM *pub_key,DH *dh); > int (*bn_mod_exp)(const DH *dh, BIGNUM *r, const BIGNUM *a, > const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, > BN_MONT_CTX *m_ctx); > > int (*init)(DH *dh); > int (*finish)(DH *dh); > int flags; > char *app_data; > > int (*generate_params)(DH *dh, int prime_len, int generator, BN_GENCB *cb); > }; > >struct dh_st > { > > > int pad; > int version; > BIGNUM *p; > BIGNUM *g; > long length; > BIGNUM *pub_key; > BIGNUM *priv_key; > > int flags; > BN_MONT_CTX *method_mont_p; > > BIGNUM *q; > BIGNUM *j; > unsigned char *seed; > int seedlen; > BIGNUM *counter; > > int references; > CRYPTO_EX_DATA ex_data; > const DH_METHOD *meth; > ENGINE *engine; > }; ># 168 "/usr/include/openssl/dh.h" 3 4 >const DH_METHOD *DH_OpenSSL(void); > >void DH_set_default_method(const DH_METHOD *meth); >const DH_METHOD *DH_get_default_method(void); >int DH_set_method(DH *dh, const DH_METHOD *meth); >DH *DH_new_method(ENGINE *engine); > >DH * DH_new(void); >void DH_free(DH *dh); >int DH_up_ref(DH *dh); >int DH_size(const DH *dh); >int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, > CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); >int DH_set_ex_data(DH *d, int idx, void *arg); >void *DH_get_ex_data(DH *d, int idx); > > > >DH * DH_generate_parameters(int prime_len,int generator, > void (*callback)(int,int,void *),void *cb_arg); > > > >int DH_generate_parameters_ex(DH *dh, int prime_len,int generator, BN_GENCB *cb); > >int DH_check(const DH *dh,int *codes); >int DH_check_pub_key(const DH *dh,const BIGNUM *pub_key, int *codes); >int DH_generate_key(DH *dh); >int DH_compute_key(unsigned char *key,const BIGNUM *pub_key,DH *dh); >DH * d2i_DHparams(DH **a,const unsigned char **pp, long length); >int i2d_DHparams(const DH *a,unsigned char **pp); > >int DHparams_print_fp(FILE *fp, const DH *x); > > >int DHparams_print(BIO *bp, const DH *x); ># 212 "/usr/include/openssl/dh.h" 3 4 >void ERR_load_DH_strings(void); ># 232 "/usr/include/openssl/dh.h" 3 4 >} ># 84 "/usr/include/openssl/dsa.h" 2 3 4 ># 101 "/usr/include/openssl/dsa.h" 3 4 >extern "C" { > > > > > > >typedef struct DSA_SIG_st > { > BIGNUM *r; > BIGNUM *s; > } DSA_SIG; > >struct dsa_method > { > const char *name; > DSA_SIG * (*dsa_do_sign)(const unsigned char *dgst, int dlen, DSA *dsa); > int (*dsa_sign_setup)(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, > BIGNUM **rp); > int (*dsa_do_verify)(const unsigned char *dgst, int dgst_len, > DSA_SIG *sig, DSA *dsa); > int (*dsa_mod_exp)(DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1, > BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx, > BN_MONT_CTX *in_mont); > int (*bn_mod_exp)(DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p, > const BIGNUM *m, BN_CTX *ctx, > BN_MONT_CTX *m_ctx); > int (*init)(DSA *dsa); > int (*finish)(DSA *dsa); > int flags; > char *app_data; > > int (*dsa_paramgen)(DSA *dsa, int bits, > unsigned char *seed, int seed_len, > int *counter_ret, unsigned long *h_ret, > BN_GENCB *cb); > > int (*dsa_keygen)(DSA *dsa); > }; > >struct dsa_st > { > > > int pad; > long version; > int write_params; > BIGNUM *p; > BIGNUM *q; > BIGNUM *g; > > BIGNUM *pub_key; > BIGNUM *priv_key; > > BIGNUM *kinv; > BIGNUM *r; > > int flags; > > BN_MONT_CTX *method_mont_p; > int references; > CRYPTO_EX_DATA ex_data; > const DSA_METHOD *meth; > > ENGINE *engine; > }; ># 177 "/usr/include/openssl/dsa.h" 3 4 >DSA_SIG * DSA_SIG_new(void); >void DSA_SIG_free(DSA_SIG *a); >int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); >DSA_SIG * d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); > >DSA_SIG * DSA_do_sign(const unsigned char *dgst,int dlen,DSA *dsa); >int DSA_do_verify(const unsigned char *dgst,int dgst_len, > DSA_SIG *sig,DSA *dsa); > >const DSA_METHOD *DSA_OpenSSL(void); > >void DSA_set_default_method(const DSA_METHOD *); >const DSA_METHOD *DSA_get_default_method(void); >int DSA_set_method(DSA *dsa, const DSA_METHOD *); > >DSA * DSA_new(void); >DSA * DSA_new_method(ENGINE *engine); >void DSA_free (DSA *r); > >int DSA_up_ref(DSA *r); >int DSA_size(const DSA *); > >int DSA_sign_setup( DSA *dsa,BN_CTX *ctx_in,BIGNUM **kinvp,BIGNUM **rp); >int DSA_sign(int type,const unsigned char *dgst,int dlen, > unsigned char *sig, unsigned int *siglen, DSA *dsa); >int DSA_verify(int type,const unsigned char *dgst,int dgst_len, > const unsigned char *sigbuf, int siglen, DSA *dsa); >int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, > CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); >int DSA_set_ex_data(DSA *d, int idx, void *arg); >void *DSA_get_ex_data(DSA *d, int idx); > >DSA * d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); >DSA * d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); >DSA * d2i_DSAparams(DSA **a, const unsigned char **pp, long length); > > > >DSA * DSA_generate_parameters(int bits, > unsigned char *seed,int seed_len, > int *counter_ret, unsigned long *h_ret,void > (*callback)(int, int, void *),void *cb_arg); > > > >int DSA_generate_parameters_ex(DSA *dsa, int bits, > unsigned char *seed,int seed_len, > int *counter_ret, unsigned long *h_ret, BN_GENCB *cb); > >int DSA_generate_key(DSA *a); >int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); >int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); >int i2d_DSAparams(const DSA *a,unsigned char **pp); > > >int DSAparams_print(BIO *bp, const DSA *x); >int DSA_print(BIO *bp, const DSA *x, int off); > > >int DSAparams_print_fp(FILE *fp, const DSA *x); >int DSA_print_fp(FILE *bp, const DSA *x, int off); ># 249 "/usr/include/openssl/dsa.h" 3 4 >DH *DSA_dup_DH(const DSA *r); > > > > > > >void ERR_load_DSA_strings(void); ># 283 "/usr/include/openssl/dsa.h" 3 4 >} ># 91 "/usr/include/openssl/x509.h" 2 3 4 > > > > > > > ># 1 "/usr/include/openssl/sha.h" 1 3 4 ># 62 "/usr/include/openssl/sha.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 63 "/usr/include/openssl/sha.h" 2 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 64 "/usr/include/openssl/sha.h" 2 3 4 > > >extern "C" { ># 100 "/usr/include/openssl/sha.h" 3 4 >typedef struct SHAstate_st > { > unsigned int h0,h1,h2,h3,h4; > unsigned int Nl,Nh; > unsigned int data[16]; > unsigned int num; > } SHA_CTX; > > >int SHA_Init(SHA_CTX *c); >int SHA_Update(SHA_CTX *c, const void *data, size_t len); >int SHA_Final(unsigned char *md, SHA_CTX *c); >unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md); >void SHA_Transform(SHA_CTX *c, const unsigned char *data); > > >int SHA1_Init(SHA_CTX *c); >int SHA1_Update(SHA_CTX *c, const void *data, size_t len); >int SHA1_Final(unsigned char *md, SHA_CTX *c); >unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); >void SHA1_Transform(SHA_CTX *c, const unsigned char *data); ># 129 "/usr/include/openssl/sha.h" 3 4 >typedef struct SHA256state_st > { > unsigned int h[8]; > unsigned int Nl,Nh; > unsigned int data[16]; > unsigned int num,md_len; > } SHA256_CTX; > > >int SHA224_Init(SHA256_CTX *c); >int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); >int SHA224_Final(unsigned char *md, SHA256_CTX *c); >unsigned char *SHA224(const unsigned char *d, size_t n,unsigned char *md); >int SHA256_Init(SHA256_CTX *c); >int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); >int SHA256_Final(unsigned char *md, SHA256_CTX *c); >unsigned char *SHA256(const unsigned char *d, size_t n,unsigned char *md); >void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); ># 172 "/usr/include/openssl/sha.h" 3 4 >typedef struct SHA512state_st > { > unsigned long long h[8]; > unsigned long long Nl,Nh; > union { > unsigned long long d[16]; > unsigned char p[(16*8)]; > } u; > unsigned int num,md_len; > } SHA512_CTX; > > > >int SHA384_Init(SHA512_CTX *c); >int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); >int SHA384_Final(unsigned char *md, SHA512_CTX *c); >unsigned char *SHA384(const unsigned char *d, size_t n,unsigned char *md); >int SHA512_Init(SHA512_CTX *c); >int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); >int SHA512_Final(unsigned char *md, SHA512_CTX *c); >unsigned char *SHA512(const unsigned char *d, size_t n,unsigned char *md); >void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); > > > >} ># 99 "/usr/include/openssl/x509.h" 2 3 4 > > > > >extern "C" { ># 127 "/usr/include/openssl/x509.h" 3 4 >typedef struct X509_objects_st > { > int nid; > int (*a2i)(void); > int (*i2a)(void); > } X509_OBJECTS; > >struct X509_algor_st > { > ASN1_OBJECT *algorithm; > ASN1_TYPE *parameter; > } ; > > > > >typedef struct X509_val_st > { > ASN1_TIME *notBefore; > ASN1_TIME *notAfter; > } X509_VAL; > >typedef struct X509_pubkey_st > { > X509_ALGOR *algor; > ASN1_BIT_STRING *public_key; > EVP_PKEY *pkey; > } X509_PUBKEY; > >typedef struct X509_sig_st > { > X509_ALGOR *algor; > ASN1_OCTET_STRING *digest; > } X509_SIG; > >typedef struct X509_name_entry_st > { > ASN1_OBJECT *object; > ASN1_STRING *value; > int set; > int size; > } X509_NAME_ENTRY; > > > > > >struct X509_name_st > { > STACK *entries; > int modified; > > BUF_MEM *bytes; > > > > unsigned long hash; > } ; > > > > > >typedef struct X509_extension_st > { > ASN1_OBJECT *object; > ASN1_BOOLEAN critical; > ASN1_OCTET_STRING *value; > } X509_EXTENSION; > > > > > >typedef struct x509_attributes_st > { > ASN1_OBJECT *object; > int single; > union { > char *ptr; > STACK *set; > ASN1_TYPE *single; > } value; > } X509_ATTRIBUTE; > > > > > >typedef struct X509_req_info_st > { > ASN1_ENCODING enc; > ASN1_INTEGER *version; > X509_NAME *subject; > X509_PUBKEY *pubkey; > > STACK *attributes; > } X509_REQ_INFO; > >typedef struct X509_req_st > { > X509_REQ_INFO *req_info; > X509_ALGOR *sig_alg; > ASN1_BIT_STRING *signature; > int references; > } X509_REQ; > >typedef struct x509_cinf_st > { > ASN1_INTEGER *version; > ASN1_INTEGER *serialNumber; > X509_ALGOR *signature; > X509_NAME *issuer; > X509_VAL *validity; > X509_NAME *subject; > X509_PUBKEY *key; > ASN1_BIT_STRING *issuerUID; > ASN1_BIT_STRING *subjectUID; > STACK *extensions; > } X509_CINF; > > > > > > > >typedef struct x509_cert_aux_st > { > STACK *trust; > STACK *reject; > ASN1_UTF8STRING *alias; > ASN1_OCTET_STRING *keyid; > STACK *other; > } X509_CERT_AUX; > >struct x509_st > { > X509_CINF *cert_info; > X509_ALGOR *sig_alg; > ASN1_BIT_STRING *signature; > int valid; > int references; > char *name; > CRYPTO_EX_DATA ex_data; > > long ex_pathlen; > long ex_pcpathlen; > unsigned long ex_flags; > unsigned long ex_kusage; > unsigned long ex_xkusage; > unsigned long ex_nscert; > ASN1_OCTET_STRING *skid; > struct AUTHORITY_KEYID_st *akid; > X509_POLICY_CACHE *policy_cache; > > STACK *rfc3779_addr; > struct ASIdentifiers_st *rfc3779_asid; > > > unsigned char sha1_hash[20]; > > X509_CERT_AUX *aux; > } ; > > > > > > >typedef struct x509_trust_st { > int trust; > int flags; > int (*check_trust)(struct x509_trust_st *, X509 *, int); > char *name; > int arg1; > void *arg2; >} X509_TRUST; > > > >typedef struct x509_cert_pair_st { > X509 *forward; > X509 *reverse; >} X509_CERT_PAIR; ># 414 "/usr/include/openssl/x509.h" 3 4 >typedef struct X509_revoked_st > { > ASN1_INTEGER *serialNumber; > ASN1_TIME *revocationDate; > STACK *extensions; > int sequence; > } X509_REVOKED; > > > > >typedef struct X509_crl_info_st > { > ASN1_INTEGER *version; > X509_ALGOR *sig_alg; > X509_NAME *issuer; > ASN1_TIME *lastUpdate; > ASN1_TIME *nextUpdate; > STACK *revoked; > STACK *extensions; > ASN1_ENCODING enc; > } X509_CRL_INFO; > >struct X509_crl_st > { > > X509_CRL_INFO *crl; > X509_ALGOR *sig_alg; > ASN1_BIT_STRING *signature; > int references; > } ; > > > > >typedef struct private_key_st > { > int version; > > X509_ALGOR *enc_algor; > ASN1_OCTET_STRING *enc_pkey; > > > EVP_PKEY *dec_pkey; > > > int key_length; > char *key_data; > int key_free; > > > EVP_CIPHER_INFO cipher; > > int references; > } X509_PKEY; > > >typedef struct X509_info_st > { > X509 *x509; > X509_CRL *crl; > X509_PKEY *x_pkey; > > EVP_CIPHER_INFO enc_cipher; > int enc_len; > char *enc_data; > > int references; > } X509_INFO; > > > > > > > > >typedef struct Netscape_spkac_st > { > X509_PUBKEY *pubkey; > ASN1_IA5STRING *challenge; > } NETSCAPE_SPKAC; > >typedef struct Netscape_spki_st > { > NETSCAPE_SPKAC *spkac; > X509_ALGOR *sig_algor; > ASN1_BIT_STRING *signature; > } NETSCAPE_SPKI; > > >typedef struct Netscape_certificate_sequence > { > ASN1_OBJECT *type; > STACK *certs; > } NETSCAPE_CERT_SEQUENCE; ># 520 "/usr/include/openssl/x509.h" 3 4 >typedef struct PBEPARAM_st { >ASN1_OCTET_STRING *salt; >ASN1_INTEGER *iter; >} PBEPARAM; > > > >typedef struct PBE2PARAM_st { >X509_ALGOR *keyfunc; >X509_ALGOR *encryption; >} PBE2PARAM; > >typedef struct PBKDF2PARAM_st { >ASN1_TYPE *salt; >ASN1_INTEGER *iter; >ASN1_INTEGER *keylength; >X509_ALGOR *prf; >} PBKDF2PARAM; > > > > >typedef struct pkcs8_priv_key_info_st > { > int broken; > > > > > ASN1_INTEGER *version; > X509_ALGOR *pkeyalg; > ASN1_TYPE *pkey; > STACK *attributes; > } PKCS8_PRIV_KEY_INFO; > > >} > > ># 1 "/usr/include/openssl/x509_vfy.h" 1 3 4 ># 68 "/usr/include/openssl/x509_vfy.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 69 "/usr/include/openssl/x509_vfy.h" 2 3 4 ># 77 "/usr/include/openssl/x509_vfy.h" 3 4 >extern "C" { > > > >typedef struct x509_hash_dir_st > { > int num_dirs; > char **dirs; > int *dirs_type; > int num_dirs_alloced; > } X509_HASH_DIR_CTX; > >typedef struct x509_file_st > { > int num_paths; > int num_alloced; > char **paths; > int *path_type; > } X509_CERT_FILE_CTX; ># 121 "/usr/include/openssl/x509_vfy.h" 3 4 >typedef struct x509_object_st > { > > int type; > union { > char *ptr; > X509 *x509; > X509_CRL *crl; > EVP_PKEY *pkey; > } data; > } X509_OBJECT; > >typedef struct x509_lookup_st X509_LOOKUP; > > > > > >typedef struct x509_lookup_method_st > { > const char *name; > int (*new_item)(X509_LOOKUP *ctx); > void (*free)(X509_LOOKUP *ctx); > int (*init)(X509_LOOKUP *ctx); > int (*shutdown)(X509_LOOKUP *ctx); > int (*ctrl)(X509_LOOKUP *ctx,int cmd,const char *argc,long argl, > char **ret); > int (*get_by_subject)(X509_LOOKUP *ctx,int type,X509_NAME *name, > X509_OBJECT *ret); > int (*get_by_issuer_serial)(X509_LOOKUP *ctx,int type,X509_NAME *name, > ASN1_INTEGER *serial,X509_OBJECT *ret); > int (*get_by_fingerprint)(X509_LOOKUP *ctx,int type, > unsigned char *bytes,int len, > X509_OBJECT *ret); > int (*get_by_alias)(X509_LOOKUP *ctx,int type,char *str,int len, > X509_OBJECT *ret); > } X509_LOOKUP_METHOD; > > > > > > >typedef struct X509_VERIFY_PARAM_st > { > char *name; > time_t check_time; > unsigned long inh_flags; > unsigned long flags; > int purpose; > int trust; > int depth; > STACK *policies; > } X509_VERIFY_PARAM; > > > > > > >struct x509_store_st > { > > int cache; > STACK *objs; > > > STACK *get_cert_methods; > > X509_VERIFY_PARAM *param; > > > int (*verify)(X509_STORE_CTX *ctx); > int (*verify_cb)(int ok,X509_STORE_CTX *ctx); > int (*get_issuer)(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); > int (*check_issued)(X509_STORE_CTX *ctx, X509 *x, X509 *issuer); > int (*check_revocation)(X509_STORE_CTX *ctx); > int (*get_crl)(X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); > int (*check_crl)(X509_STORE_CTX *ctx, X509_CRL *crl); > int (*cert_crl)(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); > int (*cleanup)(X509_STORE_CTX *ctx); > > CRYPTO_EX_DATA ex_data; > int references; > } ; > >int X509_STORE_set_depth(X509_STORE *store, int depth); > > > > > >struct x509_lookup_st > { > int init; > int skip; > X509_LOOKUP_METHOD *method; > char *method_data; > > X509_STORE *store_ctx; > } ; > > > > >struct x509_store_ctx_st > { > X509_STORE *ctx; > int current_method; > > > X509 *cert; > STACK *untrusted; > STACK *crls; > > X509_VERIFY_PARAM *param; > void *other_ctx; > > > int (*verify)(X509_STORE_CTX *ctx); > int (*verify_cb)(int ok,X509_STORE_CTX *ctx); > int (*get_issuer)(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); > int (*check_issued)(X509_STORE_CTX *ctx, X509 *x, X509 *issuer); > int (*check_revocation)(X509_STORE_CTX *ctx); > int (*get_crl)(X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); > int (*check_crl)(X509_STORE_CTX *ctx, X509_CRL *crl); > int (*cert_crl)(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); > int (*check_policy)(X509_STORE_CTX *ctx); > int (*cleanup)(X509_STORE_CTX *ctx); > > > int valid; > int last_untrusted; > STACK *chain; > X509_POLICY_TREE *tree; > > int explicit_policy; > > > int error_depth; > int error; > X509 *current_cert; > X509 *current_issuer; > X509_CRL *current_crl; > > CRYPTO_EX_DATA ex_data; > } ; > >void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); ># 378 "/usr/include/openssl/x509_vfy.h" 3 4 >int X509_OBJECT_idx_by_subject(STACK *h, int type, > X509_NAME *name); >X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK *h,int type,X509_NAME *name); >X509_OBJECT *X509_OBJECT_retrieve_match(STACK *h, X509_OBJECT *x); >void X509_OBJECT_up_ref_count(X509_OBJECT *a); >void X509_OBJECT_free_contents(X509_OBJECT *a); >X509_STORE *X509_STORE_new(void ); >void X509_STORE_free(X509_STORE *v); > >int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); >int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); >int X509_STORE_set_trust(X509_STORE *ctx, int trust); >int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); > >X509_STORE_CTX *X509_STORE_CTX_new(void); > >int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); > >void X509_STORE_CTX_free(X509_STORE_CTX *ctx); >int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, > X509 *x509, STACK *chain); >void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK *sk); >void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); > >X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); > >X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); >X509_LOOKUP_METHOD *X509_LOOKUP_file(void); > >int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); >int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); > >int X509_STORE_get_by_subject(X509_STORE_CTX *vs,int type,X509_NAME *name, > X509_OBJECT *ret); > >int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, > long argl, char **ret); > > >int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); >int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); >int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); > > > >X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); >void X509_LOOKUP_free(X509_LOOKUP *ctx); >int X509_LOOKUP_init(X509_LOOKUP *ctx); >int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type, X509_NAME *name, > X509_OBJECT *ret); >int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type, X509_NAME *name, > ASN1_INTEGER *serial, X509_OBJECT *ret); >int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type, > unsigned char *bytes, int len, X509_OBJECT *ret); >int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str, > int len, X509_OBJECT *ret); >int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); > > >int X509_STORE_load_locations (X509_STORE *ctx, > const char *file, const char *dir); >int X509_STORE_set_default_paths(X509_STORE *ctx); > > >int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, > CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); >int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx,int idx,void *data); >void * X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx,int idx); >int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); >void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx,int s); >int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); >X509 * X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); >STACK *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); >STACK *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); >void X509_STORE_CTX_set_cert(X509_STORE_CTX *c,X509 *x); >void X509_STORE_CTX_set_chain(X509_STORE_CTX *c,STACK *sk); >void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c,STACK *sk); >int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); >int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); >int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, > int purpose, int trust); >void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); >void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, > time_t t); >void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, > int (*verify_cb)(int, X509_STORE_CTX *)); > >X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); >int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); > >X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); >void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); >int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); > > > >X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); >void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); >int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, > const X509_VERIFY_PARAM *from); >int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, > const X509_VERIFY_PARAM *from); >int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); >int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, unsigned long flags); >int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, > unsigned long flags); >unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); >int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); >int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); >void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); >void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); >int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, > ASN1_OBJECT *policy); >int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, > STACK *policies); >int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); > >int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); >const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); >void X509_VERIFY_PARAM_table_cleanup(void); > >int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, > STACK *certs, > STACK *policy_oids, > unsigned int flags); > >void X509_policy_tree_free(X509_POLICY_TREE *tree); > >int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); >X509_POLICY_LEVEL * > X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, int i); > >STACK * > X509_policy_tree_get0_policies(const X509_POLICY_TREE *tree); > >STACK * > X509_policy_tree_get0_user_policies(const X509_POLICY_TREE *tree); > >int X509_policy_level_node_count(X509_POLICY_LEVEL *level); > >X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, int i); > >const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); > >STACK * > X509_policy_node_get0_qualifiers(const X509_POLICY_NODE *node); >const X509_POLICY_NODE * > X509_policy_node_get0_parent(const X509_POLICY_NODE *node); > > >} ># 560 "/usr/include/openssl/x509.h" 2 3 4 ># 1 "/usr/include/openssl/pkcs7.h" 1 3 4 ># 64 "/usr/include/openssl/pkcs7.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 65 "/usr/include/openssl/pkcs7.h" 2 3 4 > > > > > >extern "C" { ># 86 "/usr/include/openssl/pkcs7.h" 3 4 >typedef struct pkcs7_issuer_and_serial_st > { > X509_NAME *issuer; > ASN1_INTEGER *serial; > } PKCS7_ISSUER_AND_SERIAL; > >typedef struct pkcs7_signer_info_st > { > ASN1_INTEGER *version; > PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; > X509_ALGOR *digest_alg; > STACK *auth_attr; > X509_ALGOR *digest_enc_alg; > ASN1_OCTET_STRING *enc_digest; > STACK *unauth_attr; > > > EVP_PKEY *pkey; > } PKCS7_SIGNER_INFO; > > > > >typedef struct pkcs7_recip_info_st > { > ASN1_INTEGER *version; > PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; > X509_ALGOR *key_enc_algor; > ASN1_OCTET_STRING *enc_key; > X509 *cert; > } PKCS7_RECIP_INFO; > > > > >typedef struct pkcs7_signed_st > { > ASN1_INTEGER *version; > STACK *md_algs; > STACK *cert; > STACK *crl; > STACK *signer_info; > > struct pkcs7_st *contents; > } PKCS7_SIGNED; > > > >typedef struct pkcs7_enc_content_st > { > ASN1_OBJECT *content_type; > X509_ALGOR *algorithm; > ASN1_OCTET_STRING *enc_data; > const EVP_CIPHER *cipher; > } PKCS7_ENC_CONTENT; > >typedef struct pkcs7_enveloped_st > { > ASN1_INTEGER *version; > STACK *recipientinfo; > PKCS7_ENC_CONTENT *enc_data; > } PKCS7_ENVELOPE; > >typedef struct pkcs7_signedandenveloped_st > { > ASN1_INTEGER *version; > STACK *md_algs; > STACK *cert; > STACK *crl; > STACK *signer_info; > > PKCS7_ENC_CONTENT *enc_data; > STACK *recipientinfo; > } PKCS7_SIGN_ENVELOPE; > >typedef struct pkcs7_digest_st > { > ASN1_INTEGER *version; > X509_ALGOR *md; > struct pkcs7_st *contents; > ASN1_OCTET_STRING *digest; > } PKCS7_DIGEST; > >typedef struct pkcs7_encrypted_st > { > ASN1_INTEGER *version; > PKCS7_ENC_CONTENT *enc_data; > } PKCS7_ENCRYPT; > >typedef struct pkcs7_st > { > > > unsigned char *asn1; > long length; > > > > > int state; > > int detached; > > ASN1_OBJECT *type; > > > > union { > char *ptr; > > > ASN1_OCTET_STRING *data; > > > PKCS7_SIGNED *sign; > > > PKCS7_ENVELOPE *enveloped; > > > PKCS7_SIGN_ENVELOPE *signed_and_enveloped; > > > PKCS7_DIGEST *digest; > > > PKCS7_ENCRYPT *encrypted; > > > ASN1_TYPE *other; > } d; > } PKCS7; > > > > ># 282 "/usr/include/openssl/pkcs7.h" 3 4 >PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(void); void PKCS7_ISSUER_AND_SERIAL_free(PKCS7_ISSUER_AND_SERIAL *a); PKCS7_ISSUER_AND_SERIAL *d2i_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL **a, const unsigned char **in, long len); int i2d_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ISSUER_AND_SERIAL_it; > > >int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,const EVP_MD *type, > unsigned char *md,unsigned int *len); > >PKCS7 *d2i_PKCS7_fp(FILE *fp,PKCS7 **p7); >int i2d_PKCS7_fp(FILE *fp,PKCS7 *p7); > >PKCS7 *PKCS7_dup(PKCS7 *p7); >PKCS7 *d2i_PKCS7_bio(BIO *bp,PKCS7 **p7); >int i2d_PKCS7_bio(BIO *bp,PKCS7 *p7); > > >PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(void); void PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a); PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO **a, const unsigned char **in, long len); int i2d_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO *a, unsigned char **out); extern const ASN1_ITEM PKCS7_SIGNER_INFO_it; >PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new(void); void PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a); PKCS7_RECIP_INFO *d2i_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO **a, const unsigned char **in, long len); int i2d_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO *a, unsigned char **out); extern const ASN1_ITEM PKCS7_RECIP_INFO_it; >PKCS7_SIGNED *PKCS7_SIGNED_new(void); void PKCS7_SIGNED_free(PKCS7_SIGNED *a); PKCS7_SIGNED *d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, const unsigned char **in, long len); int i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **out); extern const ASN1_ITEM PKCS7_SIGNED_it; >PKCS7_ENC_CONTENT *PKCS7_ENC_CONTENT_new(void); void PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a); PKCS7_ENC_CONTENT *d2i_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT **a, const unsigned char **in, long len); int i2d_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ENC_CONTENT_it; >PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(void); void PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a); PKCS7_ENVELOPE *d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE **a, const unsigned char **in, long len); int i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ENVELOPE_it; >PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void); void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a); PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a, const unsigned char **in, long len); int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **out); extern const ASN1_ITEM PKCS7_SIGN_ENVELOPE_it; >PKCS7_DIGEST *PKCS7_DIGEST_new(void); void PKCS7_DIGEST_free(PKCS7_DIGEST *a); PKCS7_DIGEST *d2i_PKCS7_DIGEST(PKCS7_DIGEST **a, const unsigned char **in, long len); int i2d_PKCS7_DIGEST(PKCS7_DIGEST *a, unsigned char **out); extern const ASN1_ITEM PKCS7_DIGEST_it; >PKCS7_ENCRYPT *PKCS7_ENCRYPT_new(void); void PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a); PKCS7_ENCRYPT *d2i_PKCS7_ENCRYPT(PKCS7_ENCRYPT **a, const unsigned char **in, long len); int i2d_PKCS7_ENCRYPT(PKCS7_ENCRYPT *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ENCRYPT_it; >PKCS7 *PKCS7_new(void); void PKCS7_free(PKCS7 *a); PKCS7 *d2i_PKCS7(PKCS7 **a, const unsigned char **in, long len); int i2d_PKCS7(PKCS7 *a, unsigned char **out); extern const ASN1_ITEM PKCS7_it; > >extern const ASN1_ITEM PKCS7_ATTR_SIGN_it; >extern const ASN1_ITEM PKCS7_ATTR_VERIFY_it; > >int i2d_PKCS7_NDEF(PKCS7 *a, unsigned char **out); > >long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); > >int PKCS7_set_type(PKCS7 *p7, int type); >int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); >int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); >int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, > const EVP_MD *dgst); >int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); >int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); >int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); >int PKCS7_content_new(PKCS7 *p7, int nid); >int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, > BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); >int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, > X509 *x509); > >BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); >int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); >BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); > > >PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, > EVP_PKEY *pkey, const EVP_MD *dgst); >X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); >int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); >STACK *PKCS7_get_signer_info(PKCS7 *p7); > >PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); >int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); >int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); >int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); > >PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); >ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK *sk); >int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si,int nid,int type, > void *data); >int PKCS7_add_attribute (PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, > void *value); >ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); >ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); >int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, > STACK *sk); >int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,STACK *sk); > > >PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK *certs, > BIO *data, int flags); >int PKCS7_verify(PKCS7 *p7, STACK *certs, X509_STORE *store, > BIO *indata, BIO *out, int flags); >STACK *PKCS7_get0_signers(PKCS7 *p7, STACK *certs, int flags); >PKCS7 *PKCS7_encrypt(STACK *certs, BIO *in, const EVP_CIPHER *cipher, > int flags); >int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags); > >int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, > STACK *cap); >STACK *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); >int PKCS7_simple_smimecap(STACK *sk, int nid, int arg); > >int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); >PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); >int SMIME_crlf_copy(BIO *in, BIO *out, int flags); >int SMIME_text(BIO *in, BIO *out); > > > > > >void ERR_load_PKCS7_strings(void); ># 462 "/usr/include/openssl/pkcs7.h" 3 4 >} ># 561 "/usr/include/openssl/x509.h" 2 3 4 > > >extern "C" { ># 736 "/usr/include/openssl/x509.h" 3 4 >const char *X509_verify_cert_error_string(long n); > > > >int X509_verify(X509 *a, EVP_PKEY *r); > >int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); >int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); >int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); > >NETSCAPE_SPKI * NETSCAPE_SPKI_b64_decode(const char *str, int len); >char * NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); >EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); >int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); > >int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); > >int X509_signature_print(BIO *bp,X509_ALGOR *alg, ASN1_STRING *sig); > >int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); >int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); >int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); >int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); > >int X509_pubkey_digest(const X509 *data,const EVP_MD *type, > unsigned char *md, unsigned int *len); >int X509_digest(const X509 *data,const EVP_MD *type, > unsigned char *md, unsigned int *len); >int X509_CRL_digest(const X509_CRL *data,const EVP_MD *type, > unsigned char *md, unsigned int *len); >int X509_REQ_digest(const X509_REQ *data,const EVP_MD *type, > unsigned char *md, unsigned int *len); >int X509_NAME_digest(const X509_NAME *data,const EVP_MD *type, > unsigned char *md, unsigned int *len); > > > >X509 *d2i_X509_fp(FILE *fp, X509 **x509); >int i2d_X509_fp(FILE *fp,X509 *x509); >X509_CRL *d2i_X509_CRL_fp(FILE *fp,X509_CRL **crl); >int i2d_X509_CRL_fp(FILE *fp,X509_CRL *crl); >X509_REQ *d2i_X509_REQ_fp(FILE *fp,X509_REQ **req); >int i2d_X509_REQ_fp(FILE *fp,X509_REQ *req); > >RSA *d2i_RSAPrivateKey_fp(FILE *fp,RSA **rsa); >int i2d_RSAPrivateKey_fp(FILE *fp,RSA *rsa); >RSA *d2i_RSAPublicKey_fp(FILE *fp,RSA **rsa); >int i2d_RSAPublicKey_fp(FILE *fp,RSA *rsa); >RSA *d2i_RSA_PUBKEY_fp(FILE *fp,RSA **rsa); >int i2d_RSA_PUBKEY_fp(FILE *fp,RSA *rsa); > > >DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); >int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); >DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); >int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); > >X509_SIG *d2i_PKCS8_fp(FILE *fp,X509_SIG **p8); >int i2d_PKCS8_fp(FILE *fp,X509_SIG *p8); >PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, > PKCS8_PRIV_KEY_INFO **p8inf); >int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp,PKCS8_PRIV_KEY_INFO *p8inf); >int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); >int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); >EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); >int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); >EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); > > > >X509 *d2i_X509_bio(BIO *bp,X509 **x509); >int i2d_X509_bio(BIO *bp,X509 *x509); >X509_CRL *d2i_X509_CRL_bio(BIO *bp,X509_CRL **crl); >int i2d_X509_CRL_bio(BIO *bp,X509_CRL *crl); >X509_REQ *d2i_X509_REQ_bio(BIO *bp,X509_REQ **req); >int i2d_X509_REQ_bio(BIO *bp,X509_REQ *req); > >RSA *d2i_RSAPrivateKey_bio(BIO *bp,RSA **rsa); >int i2d_RSAPrivateKey_bio(BIO *bp,RSA *rsa); >RSA *d2i_RSAPublicKey_bio(BIO *bp,RSA **rsa); >int i2d_RSAPublicKey_bio(BIO *bp,RSA *rsa); >RSA *d2i_RSA_PUBKEY_bio(BIO *bp,RSA **rsa); >int i2d_RSA_PUBKEY_bio(BIO *bp,RSA *rsa); > > >DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); >int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); >DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); >int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); > >X509_SIG *d2i_PKCS8_bio(BIO *bp,X509_SIG **p8); >int i2d_PKCS8_bio(BIO *bp,X509_SIG *p8); >PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, > PKCS8_PRIV_KEY_INFO **p8inf); >int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,PKCS8_PRIV_KEY_INFO *p8inf); >int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); >int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); >EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); >int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); >EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); > > >X509 *X509_dup(X509 *x509); >X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); >X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); >X509_CRL *X509_CRL_dup(X509_CRL *crl); >X509_REQ *X509_REQ_dup(X509_REQ *req); >X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); >X509_NAME *X509_NAME_dup(X509_NAME *xn); >X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); > > > >int X509_cmp_time(ASN1_TIME *s, time_t *t); >int X509_cmp_current_time(ASN1_TIME *s); >ASN1_TIME * X509_time_adj(ASN1_TIME *s, long adj, time_t *t); >ASN1_TIME * X509_gmtime_adj(ASN1_TIME *s, long adj); > >const char * X509_get_default_cert_area(void ); >const char * X509_get_default_cert_dir(void ); >const char * X509_get_default_cert_file(void ); >const char * X509_get_default_cert_dir_env(void ); >const char * X509_get_default_cert_file_env(void ); >const char * X509_get_default_private_dir(void ); > >X509_REQ * X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); >X509 * X509_REQ_to_X509(X509_REQ *r, int days,EVP_PKEY *pkey); > >X509_ALGOR *X509_ALGOR_new(void); void X509_ALGOR_free(X509_ALGOR *a); X509_ALGOR *d2i_X509_ALGOR(X509_ALGOR **a, const unsigned char **in, long len); int i2d_X509_ALGOR(X509_ALGOR *a, unsigned char **out); extern const ASN1_ITEM X509_ALGOR_it; >X509_VAL *X509_VAL_new(void); void X509_VAL_free(X509_VAL *a); X509_VAL *d2i_X509_VAL(X509_VAL **a, const unsigned char **in, long len); int i2d_X509_VAL(X509_VAL *a, unsigned char **out); extern const ASN1_ITEM X509_VAL_it; > >X509_PUBKEY *X509_PUBKEY_new(void); void X509_PUBKEY_free(X509_PUBKEY *a); X509_PUBKEY *d2i_X509_PUBKEY(X509_PUBKEY **a, const unsigned char **in, long len); int i2d_X509_PUBKEY(X509_PUBKEY *a, unsigned char **out); extern const ASN1_ITEM X509_PUBKEY_it; > >int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); >EVP_PKEY * X509_PUBKEY_get(X509_PUBKEY *key); >int X509_get_pubkey_parameters(EVP_PKEY *pkey, > STACK *chain); >int i2d_PUBKEY(EVP_PKEY *a,unsigned char **pp); >EVP_PKEY * d2i_PUBKEY(EVP_PKEY **a,const unsigned char **pp, > long length); > >int i2d_RSA_PUBKEY(RSA *a,unsigned char **pp); >RSA * d2i_RSA_PUBKEY(RSA **a,const unsigned char **pp, > long length); > > >int i2d_DSA_PUBKEY(DSA *a,unsigned char **pp); >DSA * d2i_DSA_PUBKEY(DSA **a,const unsigned char **pp, > long length); > > >X509_SIG *X509_SIG_new(void); void X509_SIG_free(X509_SIG *a); X509_SIG *d2i_X509_SIG(X509_SIG **a, const unsigned char **in, long len); int i2d_X509_SIG(X509_SIG *a, unsigned char **out); extern const ASN1_ITEM X509_SIG_it; >X509_REQ_INFO *X509_REQ_INFO_new(void); void X509_REQ_INFO_free(X509_REQ_INFO *a); X509_REQ_INFO *d2i_X509_REQ_INFO(X509_REQ_INFO **a, const unsigned char **in, long len); int i2d_X509_REQ_INFO(X509_REQ_INFO *a, unsigned char **out); extern const ASN1_ITEM X509_REQ_INFO_it; >X509_REQ *X509_REQ_new(void); void X509_REQ_free(X509_REQ *a); X509_REQ *d2i_X509_REQ(X509_REQ **a, const unsigned char **in, long len); int i2d_X509_REQ(X509_REQ *a, unsigned char **out); extern const ASN1_ITEM X509_REQ_it; > >X509_ATTRIBUTE *X509_ATTRIBUTE_new(void); void X509_ATTRIBUTE_free(X509_ATTRIBUTE *a); X509_ATTRIBUTE *d2i_X509_ATTRIBUTE(X509_ATTRIBUTE **a, const unsigned char **in, long len); int i2d_X509_ATTRIBUTE(X509_ATTRIBUTE *a, unsigned char **out); extern const ASN1_ITEM X509_ATTRIBUTE_it; >X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); > >X509_EXTENSION *X509_EXTENSION_new(void); void X509_EXTENSION_free(X509_EXTENSION *a); X509_EXTENSION *d2i_X509_EXTENSION(X509_EXTENSION **a, const unsigned char **in, long len); int i2d_X509_EXTENSION(X509_EXTENSION *a, unsigned char **out); extern const ASN1_ITEM X509_EXTENSION_it; > >X509_NAME_ENTRY *X509_NAME_ENTRY_new(void); void X509_NAME_ENTRY_free(X509_NAME_ENTRY *a); X509_NAME_ENTRY *d2i_X509_NAME_ENTRY(X509_NAME_ENTRY **a, const unsigned char **in, long len); int i2d_X509_NAME_ENTRY(X509_NAME_ENTRY *a, unsigned char **out); extern const ASN1_ITEM X509_NAME_ENTRY_it; > >X509_NAME *X509_NAME_new(void); void X509_NAME_free(X509_NAME *a); X509_NAME *d2i_X509_NAME(X509_NAME **a, const unsigned char **in, long len); int i2d_X509_NAME(X509_NAME *a, unsigned char **out); extern const ASN1_ITEM X509_NAME_it; > >int X509_NAME_set(X509_NAME **xn, X509_NAME *name); > >X509_CINF *X509_CINF_new(void); void X509_CINF_free(X509_CINF *a); X509_CINF *d2i_X509_CINF(X509_CINF **a, const unsigned char **in, long len); int i2d_X509_CINF(X509_CINF *a, unsigned char **out); extern const ASN1_ITEM X509_CINF_it; > >X509 *X509_new(void); void X509_free(X509 *a); X509 *d2i_X509(X509 **a, const unsigned char **in, long len); int i2d_X509(X509 *a, unsigned char **out); extern const ASN1_ITEM X509_it; >X509_CERT_AUX *X509_CERT_AUX_new(void); void X509_CERT_AUX_free(X509_CERT_AUX *a); X509_CERT_AUX *d2i_X509_CERT_AUX(X509_CERT_AUX **a, const unsigned char **in, long len); int i2d_X509_CERT_AUX(X509_CERT_AUX *a, unsigned char **out); extern const ASN1_ITEM X509_CERT_AUX_it; > >X509_CERT_PAIR *X509_CERT_PAIR_new(void); void X509_CERT_PAIR_free(X509_CERT_PAIR *a); X509_CERT_PAIR *d2i_X509_CERT_PAIR(X509_CERT_PAIR **a, const unsigned char **in, long len); int i2d_X509_CERT_PAIR(X509_CERT_PAIR *a, unsigned char **out); extern const ASN1_ITEM X509_CERT_PAIR_it; > >int X509_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, > CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); >int X509_set_ex_data(X509 *r, int idx, void *arg); >void *X509_get_ex_data(X509 *r, int idx); >int i2d_X509_AUX(X509 *a,unsigned char **pp); >X509 * d2i_X509_AUX(X509 **a,const unsigned char **pp,long length); > >int X509_alias_set1(X509 *x, unsigned char *name, int len); >int X509_keyid_set1(X509 *x, unsigned char *id, int len); >unsigned char * X509_alias_get0(X509 *x, int *len); >unsigned char * X509_keyid_get0(X509 *x, int *len); >int (*X509_TRUST_set_default(int (*trust)(int , X509 *, int)))(int, X509 *, int); >int X509_TRUST_set(int *t, int trust); >int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj); >int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj); >void X509_trust_clear(X509 *x); >void X509_reject_clear(X509 *x); > >X509_REVOKED *X509_REVOKED_new(void); void X509_REVOKED_free(X509_REVOKED *a); X509_REVOKED *d2i_X509_REVOKED(X509_REVOKED **a, const unsigned char **in, long len); int i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out); extern const ASN1_ITEM X509_REVOKED_it; >X509_CRL_INFO *X509_CRL_INFO_new(void); void X509_CRL_INFO_free(X509_CRL_INFO *a); X509_CRL_INFO *d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len); int i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **out); extern const ASN1_ITEM X509_CRL_INFO_it; >X509_CRL *X509_CRL_new(void); void X509_CRL_free(X509_CRL *a); X509_CRL *d2i_X509_CRL(X509_CRL **a, const unsigned char **in, long len); int i2d_X509_CRL(X509_CRL *a, unsigned char **out); extern const ASN1_ITEM X509_CRL_it; > >int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); > >X509_PKEY * X509_PKEY_new(void ); >void X509_PKEY_free(X509_PKEY *a); >int i2d_X509_PKEY(X509_PKEY *a,unsigned char **pp); >X509_PKEY * d2i_X509_PKEY(X509_PKEY **a,const unsigned char **pp,long length); > >NETSCAPE_SPKI *NETSCAPE_SPKI_new(void); void NETSCAPE_SPKI_free(NETSCAPE_SPKI *a); NETSCAPE_SPKI *d2i_NETSCAPE_SPKI(NETSCAPE_SPKI **a, const unsigned char **in, long len); int i2d_NETSCAPE_SPKI(NETSCAPE_SPKI *a, unsigned char **out); extern const ASN1_ITEM NETSCAPE_SPKI_it; >NETSCAPE_SPKAC *NETSCAPE_SPKAC_new(void); void NETSCAPE_SPKAC_free(NETSCAPE_SPKAC *a); NETSCAPE_SPKAC *d2i_NETSCAPE_SPKAC(NETSCAPE_SPKAC **a, const unsigned char **in, long len); int i2d_NETSCAPE_SPKAC(NETSCAPE_SPKAC *a, unsigned char **out); extern const ASN1_ITEM NETSCAPE_SPKAC_it; >NETSCAPE_CERT_SEQUENCE *NETSCAPE_CERT_SEQUENCE_new(void); void NETSCAPE_CERT_SEQUENCE_free(NETSCAPE_CERT_SEQUENCE *a); NETSCAPE_CERT_SEQUENCE *d2i_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE **a, const unsigned char **in, long len); int i2d_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE *a, unsigned char **out); extern const ASN1_ITEM NETSCAPE_CERT_SEQUENCE_it; > > >X509_INFO * X509_INFO_new(void); >void X509_INFO_free(X509_INFO *a); >char * X509_NAME_oneline(X509_NAME *a,char *buf,int size); > >int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, > ASN1_BIT_STRING *signature,char *data,EVP_PKEY *pkey); > >int ASN1_digest(i2d_of_void *i2d,const EVP_MD *type,char *data, > unsigned char *md,unsigned int *len); > >int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, > X509_ALGOR *algor2, ASN1_BIT_STRING *signature, > char *data,EVP_PKEY *pkey, const EVP_MD *type); > >int ASN1_item_digest(const ASN1_ITEM *it,const EVP_MD *type,void *data, > unsigned char *md,unsigned int *len); > >int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, > ASN1_BIT_STRING *signature,void *data,EVP_PKEY *pkey); > >int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2, > ASN1_BIT_STRING *signature, > void *data, EVP_PKEY *pkey, const EVP_MD *type); > > >int X509_set_version(X509 *x,long version); >int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); >ASN1_INTEGER * X509_get_serialNumber(X509 *x); >int X509_set_issuer_name(X509 *x, X509_NAME *name); >X509_NAME * X509_get_issuer_name(X509 *a); >int X509_set_subject_name(X509 *x, X509_NAME *name); >X509_NAME * X509_get_subject_name(X509 *a); >int X509_set_notBefore(X509 *x, ASN1_TIME *tm); >int X509_set_notAfter(X509 *x, ASN1_TIME *tm); >int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); >EVP_PKEY * X509_get_pubkey(X509 *x); >ASN1_BIT_STRING * X509_get0_pubkey_bitstr(const X509 *x); >int X509_certificate_type(X509 *x,EVP_PKEY *pubkey ); > >int X509_REQ_set_version(X509_REQ *x,long version); >int X509_REQ_set_subject_name(X509_REQ *req,X509_NAME *name); >int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); >EVP_PKEY * X509_REQ_get_pubkey(X509_REQ *req); >int X509_REQ_extension_nid(int nid); >int * X509_REQ_get_extension_nids(void); >void X509_REQ_set_extension_nids(int *nids); >STACK *X509_REQ_get_extensions(X509_REQ *req); >int X509_REQ_add_extensions_nid(X509_REQ *req, STACK *exts, > int nid); >int X509_REQ_add_extensions(X509_REQ *req, STACK *exts); >int X509_REQ_get_attr_count(const X509_REQ *req); >int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, > int lastpos); >int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, ASN1_OBJECT *obj, > int lastpos); >X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); >X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); >int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); >int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, > const ASN1_OBJECT *obj, int type, > const unsigned char *bytes, int len); >int X509_REQ_add1_attr_by_NID(X509_REQ *req, > int nid, int type, > const unsigned char *bytes, int len); >int X509_REQ_add1_attr_by_txt(X509_REQ *req, > const char *attrname, int type, > const unsigned char *bytes, int len); > >int X509_CRL_set_version(X509_CRL *x, long version); >int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); >int X509_CRL_set_lastUpdate(X509_CRL *x, ASN1_TIME *tm); >int X509_CRL_set_nextUpdate(X509_CRL *x, ASN1_TIME *tm); >int X509_CRL_sort(X509_CRL *crl); > >int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); >int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); > >int X509_REQ_check_private_key(X509_REQ *x509,EVP_PKEY *pkey); > >int X509_check_private_key(X509 *x509,EVP_PKEY *pkey); > >int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); >unsigned long X509_issuer_and_serial_hash(X509 *a); > >int X509_issuer_name_cmp(const X509 *a, const X509 *b); >unsigned long X509_issuer_name_hash(X509 *a); > >int X509_subject_name_cmp(const X509 *a, const X509 *b); >unsigned long X509_subject_name_hash(X509 *x); > >int X509_cmp(const X509 *a, const X509 *b); >int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); >unsigned long X509_NAME_hash(X509_NAME *x); > >int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); > >int X509_print_ex_fp(FILE *bp,X509 *x, unsigned long nmflag, unsigned long cflag); >int X509_print_fp(FILE *bp,X509 *x); >int X509_CRL_print_fp(FILE *bp,X509_CRL *x); >int X509_REQ_print_fp(FILE *bp,X509_REQ *req); >int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, unsigned long flags); > > > >int X509_NAME_print(BIO *bp, X509_NAME *name, int obase); >int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, unsigned long flags); >int X509_print_ex(BIO *bp,X509 *x, unsigned long nmflag, unsigned long cflag); >int X509_print(BIO *bp,X509 *x); >int X509_ocspid_print(BIO *bp,X509 *x); >int X509_CERT_AUX_print(BIO *bp,X509_CERT_AUX *x, int indent); >int X509_CRL_print(BIO *bp,X509_CRL *x); >int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, unsigned long cflag); >int X509_REQ_print(BIO *bp,X509_REQ *req); > > >int X509_NAME_entry_count(X509_NAME *name); >int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, > char *buf,int len); >int X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, > char *buf,int len); > > > >int X509_NAME_get_index_by_NID(X509_NAME *name,int nid,int lastpos); >int X509_NAME_get_index_by_OBJ(X509_NAME *name,ASN1_OBJECT *obj, > int lastpos); >X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc); >X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); >int X509_NAME_add_entry(X509_NAME *name,X509_NAME_ENTRY *ne, > int loc, int set); >int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, > unsigned char *bytes, int len, int loc, int set); >int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, > unsigned char *bytes, int len, int loc, int set); >X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, > const char *field, int type, const unsigned char *bytes, int len); >X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, > int type,unsigned char *bytes, int len); >int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, > const unsigned char *bytes, int len, int loc, int set); >X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, > ASN1_OBJECT *obj, int type,const unsigned char *bytes, > int len); >int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, > ASN1_OBJECT *obj); >int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, > const unsigned char *bytes, int len); >ASN1_OBJECT * X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne); >ASN1_STRING * X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne); > >int X509v3_get_ext_count(const STACK *x); >int X509v3_get_ext_by_NID(const STACK *x, > int nid, int lastpos); >int X509v3_get_ext_by_OBJ(const STACK *x, > ASN1_OBJECT *obj,int lastpos); >int X509v3_get_ext_by_critical(const STACK *x, > int crit, int lastpos); >X509_EXTENSION *X509v3_get_ext(const STACK *x, int loc); >X509_EXTENSION *X509v3_delete_ext(STACK *x, int loc); >STACK *X509v3_add_ext(STACK **x, > X509_EXTENSION *ex, int loc); > >int X509_get_ext_count(X509 *x); >int X509_get_ext_by_NID(X509 *x, int nid, int lastpos); >int X509_get_ext_by_OBJ(X509 *x,ASN1_OBJECT *obj,int lastpos); >int X509_get_ext_by_critical(X509 *x, int crit, int lastpos); >X509_EXTENSION *X509_get_ext(X509 *x, int loc); >X509_EXTENSION *X509_delete_ext(X509 *x, int loc); >int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); >void * X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx); >int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, > unsigned long flags); > >int X509_CRL_get_ext_count(X509_CRL *x); >int X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos); >int X509_CRL_get_ext_by_OBJ(X509_CRL *x,ASN1_OBJECT *obj,int lastpos); >int X509_CRL_get_ext_by_critical(X509_CRL *x, int crit, int lastpos); >X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc); >X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); >int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); >void * X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx); >int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, > unsigned long flags); > >int X509_REVOKED_get_ext_count(X509_REVOKED *x); >int X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid, int lastpos); >int X509_REVOKED_get_ext_by_OBJ(X509_REVOKED *x,ASN1_OBJECT *obj,int lastpos); >int X509_REVOKED_get_ext_by_critical(X509_REVOKED *x, int crit, int lastpos); >X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc); >X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); >int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); >void * X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx); >int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, > unsigned long flags); > >X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, > int nid, int crit, ASN1_OCTET_STRING *data); >X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, > ASN1_OBJECT *obj,int crit,ASN1_OCTET_STRING *data); >int X509_EXTENSION_set_object(X509_EXTENSION *ex,ASN1_OBJECT *obj); >int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); >int X509_EXTENSION_set_data(X509_EXTENSION *ex, > ASN1_OCTET_STRING *data); >ASN1_OBJECT * X509_EXTENSION_get_object(X509_EXTENSION *ex); >ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); >int X509_EXTENSION_get_critical(X509_EXTENSION *ex); > >int X509at_get_attr_count(const STACK *x); >int X509at_get_attr_by_NID(const STACK *x, int nid, > int lastpos); >int X509at_get_attr_by_OBJ(const STACK *sk, ASN1_OBJECT *obj, > int lastpos); >X509_ATTRIBUTE *X509at_get_attr(const STACK *x, int loc); >X509_ATTRIBUTE *X509at_delete_attr(STACK *x, int loc); >STACK *X509at_add1_attr(STACK **x, > X509_ATTRIBUTE *attr); >STACK *X509at_add1_attr_by_OBJ(STACK **x, > const ASN1_OBJECT *obj, int type, > const unsigned char *bytes, int len); >STACK *X509at_add1_attr_by_NID(STACK **x, > int nid, int type, > const unsigned char *bytes, int len); >STACK *X509at_add1_attr_by_txt(STACK **x, > const char *attrname, int type, > const unsigned char *bytes, int len); >X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, > int atrtype, const void *data, int len); >X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, > const ASN1_OBJECT *obj, int atrtype, const void *data, int len); >X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, > const char *atrname, int type, const unsigned char *bytes, int len); >int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); >int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, const void *data, int len); >void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, > int atrtype, void *data); >int X509_ATTRIBUTE_count(X509_ATTRIBUTE *attr); >ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); >ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); > >int EVP_PKEY_get_attr_count(const EVP_PKEY *key); >int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, > int lastpos); >int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, ASN1_OBJECT *obj, > int lastpos); >X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); >X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); >int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); >int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, > const ASN1_OBJECT *obj, int type, > const unsigned char *bytes, int len); >int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, > int nid, int type, > const unsigned char *bytes, int len); >int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, > const char *attrname, int type, > const unsigned char *bytes, int len); > >int X509_verify_cert(X509_STORE_CTX *ctx); > > >X509 *X509_find_by_issuer_and_serial(STACK *sk,X509_NAME *name, > ASN1_INTEGER *serial); >X509 *X509_find_by_subject(STACK *sk,X509_NAME *name); > >PBEPARAM *PBEPARAM_new(void); void PBEPARAM_free(PBEPARAM *a); PBEPARAM *d2i_PBEPARAM(PBEPARAM **a, const unsigned char **in, long len); int i2d_PBEPARAM(PBEPARAM *a, unsigned char **out); extern const ASN1_ITEM PBEPARAM_it; >PBE2PARAM *PBE2PARAM_new(void); void PBE2PARAM_free(PBE2PARAM *a); PBE2PARAM *d2i_PBE2PARAM(PBE2PARAM **a, const unsigned char **in, long len); int i2d_PBE2PARAM(PBE2PARAM *a, unsigned char **out); extern const ASN1_ITEM PBE2PARAM_it; >PBKDF2PARAM *PBKDF2PARAM_new(void); void PBKDF2PARAM_free(PBKDF2PARAM *a); PBKDF2PARAM *d2i_PBKDF2PARAM(PBKDF2PARAM **a, const unsigned char **in, long len); int i2d_PBKDF2PARAM(PBKDF2PARAM *a, unsigned char **out); extern const ASN1_ITEM PBKDF2PARAM_it; > >X509_ALGOR *PKCS5_pbe_set(int alg, int iter, unsigned char *salt, int saltlen); >X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, > unsigned char *salt, int saltlen); > > > >PKCS8_PRIV_KEY_INFO *PKCS8_PRIV_KEY_INFO_new(void); void PKCS8_PRIV_KEY_INFO_free(PKCS8_PRIV_KEY_INFO *a); PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO **a, const unsigned char **in, long len); int i2d_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO *a, unsigned char **out); extern const ASN1_ITEM PKCS8_PRIV_KEY_INFO_it; > >EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8); >PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); >PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken); >PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken); > >int X509_check_trust(X509 *x, int id, int flags); >int X509_TRUST_get_count(void); >X509_TRUST * X509_TRUST_get0(int idx); >int X509_TRUST_get_by_id(int id); >int X509_TRUST_add(int id, int flags, int (*ck)(X509_TRUST *, X509 *, int), > char *name, int arg1, void *arg2); >void X509_TRUST_cleanup(void); >int X509_TRUST_get_flags(X509_TRUST *xp); >char *X509_TRUST_get0_name(X509_TRUST *xp); >int X509_TRUST_get_trust(X509_TRUST *xp); > > > > > >void ERR_load_X509_strings(void); ># 1316 "/usr/include/openssl/x509.h" 3 4 >} ># 184 "/usr/include/openssl/ssl.h" 2 3 4 > > > > > ># 1 "/usr/include/openssl/pem.h" 1 3 4 ># 62 "/usr/include/openssl/pem.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 63 "/usr/include/openssl/pem.h" 2 3 4 ># 71 "/usr/include/openssl/pem.h" 3 4 ># 1 "/usr/include/openssl/pem2.h" 1 3 4 ># 61 "/usr/include/openssl/pem2.h" 3 4 >extern "C" { > > > > > > > >} ># 72 "/usr/include/openssl/pem.h" 2 3 4 > > >extern "C" { ># 139 "/usr/include/openssl/pem.h" 3 4 >typedef struct PEM_Encode_Seal_st > { > EVP_ENCODE_CTX encode; > EVP_MD_CTX md; > EVP_CIPHER_CTX cipher; > } PEM_ENCODE_SEAL_CTX; > > > > > > > >typedef struct pem_recip_st > { > char *name; > X509_NAME *dn; > > int cipher; > int key_enc; > > } PEM_USER; > >typedef struct pem_ctx_st > { > int type; > > struct { > int version; > int mode; > } proc_type; > > char *domain; > > struct { > int cipher; > > > } DEK_info; > > PEM_USER *originator; > > int num_recipient; > PEM_USER **recipient; > > > STACK *x509_chain; > > > > EVP_MD *md; > > int md_enc; > int md_len; > char *md_data; > > EVP_CIPHER *dec; > int key_len; > unsigned char *key; > > > > > int data_enc; > int data_len; > unsigned char *data; > } PEM_CTX; ># 559 "/usr/include/openssl/pem.h" 3 4 >typedef int pem_password_cb(char *buf, int size, int rwflag, void *userdata); > > > > > >int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); >int PEM_do_header (EVP_CIPHER_INFO *cipher, unsigned char *data,long *len, > pem_password_cb *callback,void *u); > > >int PEM_read_bio(BIO *bp, char **name, char **header, > unsigned char **data,long *len); >int PEM_write_bio(BIO *bp,const char *name,char *hdr,unsigned char *data, > long len); >int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, const char *name, BIO *bp, > pem_password_cb *cb, void *u); >void * PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, > void **x, pem_password_cb *cb, void *u); > > > > > > > >int PEM_ASN1_write_bio(i2d_of_void *i2d,const char *name,BIO *bp,char *x, > const EVP_CIPHER *enc,unsigned char *kstr,int klen, > pem_password_cb *cb, void *u); > > > > > > > >STACK * PEM_X509_INFO_read_bio(BIO *bp, STACK *sk, pem_password_cb *cb, void *u); >int PEM_X509_INFO_write_bio(BIO *bp,X509_INFO *xi, EVP_CIPHER *enc, > unsigned char *kstr, int klen, pem_password_cb *cd, void *u); > > > >int PEM_read(FILE *fp, char **name, char **header, > unsigned char **data,long *len); >int PEM_write(FILE *fp,char *name,char *hdr,unsigned char *data,long len); >void * PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, > pem_password_cb *cb, void *u); >int PEM_ASN1_write(i2d_of_void *i2d,const char *name,FILE *fp, > char *x,const EVP_CIPHER *enc,unsigned char *kstr, > int klen,pem_password_cb *callback, void *u); >STACK * PEM_X509_INFO_read(FILE *fp, STACK *sk, > pem_password_cb *cb, void *u); > > >int PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, > EVP_MD *md_type, unsigned char **ek, int *ekl, > unsigned char *iv, EVP_PKEY **pubk, int npubk); >void PEM_SealUpdate(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *out, int *outl, > unsigned char *in, int inl); >int PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig,int *sigl, > unsigned char *out, int *outl, EVP_PKEY *priv); > >void PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); >void PEM_SignUpdate(EVP_MD_CTX *ctx,unsigned char *d,unsigned int cnt); >int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, > unsigned int *siglen, EVP_PKEY *pkey); > >int PEM_def_callback(char *buf, int num, int w, void *key); >void PEM_proc_type(char *buf, int type); >void PEM_dek_info(char *buf, const char *type, int len, char *str); > > > > > >X509 *PEM_read_bio_X509(BIO *bp, X509 **x, pem_password_cb *cb, void *u); X509 *PEM_read_X509(FILE *fp, X509 **x, pem_password_cb *cb, void *u); int PEM_write_bio_X509(BIO *bp, X509 *x); int PEM_write_X509(FILE *fp, X509 *x); > >X509 *PEM_read_bio_X509_AUX(BIO *bp, X509 **x, pem_password_cb *cb, void *u); X509 *PEM_read_X509_AUX(FILE *fp, X509 **x, pem_password_cb *cb, void *u); int PEM_write_bio_X509_AUX(BIO *bp, X509 *x); int PEM_write_X509_AUX(FILE *fp, X509 *x); > >X509_CERT_PAIR *PEM_read_bio_X509_CERT_PAIR(BIO *bp, X509_CERT_PAIR **x, pem_password_cb *cb, void *u); X509_CERT_PAIR *PEM_read_X509_CERT_PAIR(FILE *fp, X509_CERT_PAIR **x, pem_password_cb *cb, void *u); int PEM_write_bio_X509_CERT_PAIR(BIO *bp, X509_CERT_PAIR *x); int PEM_write_X509_CERT_PAIR(FILE *fp, X509_CERT_PAIR *x); > >X509_REQ *PEM_read_bio_X509_REQ(BIO *bp, X509_REQ **x, pem_password_cb *cb, void *u); X509_REQ *PEM_read_X509_REQ(FILE *fp, X509_REQ **x, pem_password_cb *cb, void *u); int PEM_write_bio_X509_REQ(BIO *bp, X509_REQ *x); int PEM_write_X509_REQ(FILE *fp, X509_REQ *x); >int PEM_write_bio_X509_REQ_NEW(BIO *bp, X509_REQ *x); int PEM_write_X509_REQ_NEW(FILE *fp, X509_REQ *x); > >X509_CRL *PEM_read_bio_X509_CRL(BIO *bp, X509_CRL **x, pem_password_cb *cb, void *u); X509_CRL *PEM_read_X509_CRL(FILE *fp, X509_CRL **x, pem_password_cb *cb, void *u); int PEM_write_bio_X509_CRL(BIO *bp, X509_CRL *x); int PEM_write_X509_CRL(FILE *fp, X509_CRL *x); > >PKCS7 *PEM_read_bio_PKCS7(BIO *bp, PKCS7 **x, pem_password_cb *cb, void *u); PKCS7 *PEM_read_PKCS7(FILE *fp, PKCS7 **x, pem_password_cb *cb, void *u); int PEM_write_bio_PKCS7(BIO *bp, PKCS7 *x); int PEM_write_PKCS7(FILE *fp, PKCS7 *x); > >NETSCAPE_CERT_SEQUENCE *PEM_read_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp, NETSCAPE_CERT_SEQUENCE **x, pem_password_cb *cb, void *u); NETSCAPE_CERT_SEQUENCE *PEM_read_NETSCAPE_CERT_SEQUENCE(FILE *fp, NETSCAPE_CERT_SEQUENCE **x, pem_password_cb *cb, void *u); int PEM_write_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp, NETSCAPE_CERT_SEQUENCE *x); int PEM_write_NETSCAPE_CERT_SEQUENCE(FILE *fp, NETSCAPE_CERT_SEQUENCE *x); > >X509_SIG *PEM_read_bio_PKCS8(BIO *bp, X509_SIG **x, pem_password_cb *cb, void *u); X509_SIG *PEM_read_PKCS8(FILE *fp, X509_SIG **x, pem_password_cb *cb, void *u); int PEM_write_bio_PKCS8(BIO *bp, X509_SIG *x); int PEM_write_PKCS8(FILE *fp, X509_SIG *x); > >PKCS8_PRIV_KEY_INFO *PEM_read_bio_PKCS8_PRIV_KEY_INFO(BIO *bp, PKCS8_PRIV_KEY_INFO **x, pem_password_cb *cb, void *u); PKCS8_PRIV_KEY_INFO *PEM_read_PKCS8_PRIV_KEY_INFO(FILE *fp, PKCS8_PRIV_KEY_INFO **x, pem_password_cb *cb, void *u); int PEM_write_bio_PKCS8_PRIV_KEY_INFO(BIO *bp, PKCS8_PRIV_KEY_INFO *x); int PEM_write_PKCS8_PRIV_KEY_INFO(FILE *fp, PKCS8_PRIV_KEY_INFO *x); > > > >RSA *PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **x, pem_password_cb *cb, void *u); RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_RSAPrivateKey(BIO *bp, RSA *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); int PEM_write_RSAPrivateKey(FILE *fp, RSA *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); > >RSA *PEM_read_bio_RSAPublicKey(BIO *bp, RSA **x, pem_password_cb *cb, void *u); RSA *PEM_read_RSAPublicKey(FILE *fp, RSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_RSAPublicKey(BIO *bp, const RSA *x); int PEM_write_RSAPublicKey(FILE *fp, const RSA *x); >RSA *PEM_read_bio_RSA_PUBKEY(BIO *bp, RSA **x, pem_password_cb *cb, void *u); RSA *PEM_read_RSA_PUBKEY(FILE *fp, RSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_RSA_PUBKEY(BIO *bp, RSA *x); int PEM_write_RSA_PUBKEY(FILE *fp, RSA *x); > > > > > >DSA *PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **x, pem_password_cb *cb, void *u); DSA *PEM_read_DSAPrivateKey(FILE *fp, DSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_DSAPrivateKey(BIO *bp, DSA *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); int PEM_write_DSAPrivateKey(FILE *fp, DSA *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); > >DSA *PEM_read_bio_DSA_PUBKEY(BIO *bp, DSA **x, pem_password_cb *cb, void *u); DSA *PEM_read_DSA_PUBKEY(FILE *fp, DSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_DSA_PUBKEY(BIO *bp, DSA *x); int PEM_write_DSA_PUBKEY(FILE *fp, DSA *x); > >DSA *PEM_read_bio_DSAparams(BIO *bp, DSA **x, pem_password_cb *cb, void *u); DSA *PEM_read_DSAparams(FILE *fp, DSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_DSAparams(BIO *bp, const DSA *x); int PEM_write_DSAparams(FILE *fp, const DSA *x); > > > > > > >DH *PEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void *u); DH *PEM_read_DHparams(FILE *fp, DH **x, pem_password_cb *cb, void *u); int PEM_write_bio_DHparams(BIO *bp, const DH *x); int PEM_write_DHparams(FILE *fp, const DH *x); > > > >EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); EVP_PKEY *PEM_read_PrivateKey(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); int PEM_write_bio_PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); int PEM_write_PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); > >EVP_PKEY *PEM_read_bio_PUBKEY(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); EVP_PKEY *PEM_read_PUBKEY(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); int PEM_write_bio_PUBKEY(BIO *bp, EVP_PKEY *x); int PEM_write_PUBKEY(FILE *fp, EVP_PKEY *x); > >int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, > char *kstr, int klen, > pem_password_cb *cb, void *u); >int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, > char *, int, pem_password_cb *, void *); >int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, > char *kstr, int klen, > pem_password_cb *cb, void *u); >int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, > char *kstr, int klen, > pem_password_cb *cb, void *u); >EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); > >int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, > char *kstr, int klen, > pem_password_cb *cb, void *u); >int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, > char *kstr, int klen, > pem_password_cb *cb, void *u); >int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, > char *kstr, int klen, > pem_password_cb *cb, void *u); > >EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); > >int PEM_write_PKCS8PrivateKey(FILE *fp,EVP_PKEY *x,const EVP_CIPHER *enc, > char *kstr,int klen, pem_password_cb *cd, void *u); ># 718 "/usr/include/openssl/pem.h" 3 4 >void ERR_load_PEM_strings(void); ># 769 "/usr/include/openssl/pem.h" 3 4 >} ># 190 "/usr/include/openssl/ssl.h" 2 3 4 > ># 1 "/usr/include/openssl/kssl.h" 1 3 4 ># 66 "/usr/include/openssl/kssl.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 67 "/usr/include/openssl/kssl.h" 2 3 4 ># 192 "/usr/include/openssl/ssl.h" 2 3 4 > > > > >extern "C" { ># 327 "/usr/include/openssl/ssl.h" 3 4 >} > > > >extern "C" { ># 344 "/usr/include/openssl/ssl.h" 3 4 >typedef struct ssl_st *ssl_crock_st; > > >typedef struct ssl_cipher_st > { > int valid; > const char *name; > unsigned long id; > unsigned long algorithms; > unsigned long algo_strength; > unsigned long algorithm2; > int strength_bits; > int alg_bits; > unsigned long mask; > unsigned long mask_strength; > } SSL_CIPHER; > > > >typedef struct ssl_st SSL; >typedef struct ssl_ctx_st SSL_CTX; > > >typedef struct ssl_method_st > { > int version; > int (*ssl_new)(SSL *s); > void (*ssl_clear)(SSL *s); > void (*ssl_free)(SSL *s); > int (*ssl_accept)(SSL *s); > int (*ssl_connect)(SSL *s); > int (*ssl_read)(SSL *s,void *buf,int len); > int (*ssl_peek)(SSL *s,void *buf,int len); > int (*ssl_write)(SSL *s,const void *buf,int len); > int (*ssl_shutdown)(SSL *s); > int (*ssl_renegotiate)(SSL *s); > int (*ssl_renegotiate_check)(SSL *s); > long (*ssl_get_message)(SSL *s, int st1, int stn, int mt, long > max, int *ok); > int (*ssl_read_bytes)(SSL *s, int type, unsigned char *buf, int len, > int peek); > int (*ssl_write_bytes)(SSL *s, int type, const void *buf_, int len); > int (*ssl_dispatch_alert)(SSL *s); > long (*ssl_ctrl)(SSL *s,int cmd,long larg,void *parg); > long (*ssl_ctx_ctrl)(SSL_CTX *ctx,int cmd,long larg,void *parg); > SSL_CIPHER *(*get_cipher_by_char)(const unsigned char *ptr); > int (*put_cipher_by_char)(const SSL_CIPHER *cipher,unsigned char *ptr); > int (*ssl_pending)(const SSL *s); > int (*num_ciphers)(void); > SSL_CIPHER *(*get_cipher)(unsigned ncipher); > struct ssl_method_st *(*get_ssl_method)(int version); > long (*get_timeout)(void); > struct ssl3_enc_method *ssl3_enc; > int (*ssl_version)(void); > long (*ssl_callback_ctrl)(SSL *s, int cb_id, void (*fp)(void)); > long (*ssl_ctx_callback_ctrl)(SSL_CTX *s, int cb_id, void (*fp)(void)); > } SSL_METHOD; ># 421 "/usr/include/openssl/ssl.h" 3 4 >typedef struct ssl_session_st > { > int ssl_version; > > > > unsigned int key_arg_length; > unsigned char key_arg[8]; > int master_key_length; > unsigned char master_key[48]; > > unsigned int session_id_length; > unsigned char session_id[32]; > > > > unsigned int sid_ctx_length; > unsigned char sid_ctx[32]; > > > > > > > int not_resumable; > > > struct sess_cert_st *sess_cert; > > > > > > X509 *peer; > > > long verify_result; > > int references; > long timeout; > long time; > > int compress_meth; > > SSL_CIPHER *cipher; > unsigned long cipher_id; > > > > STACK *ciphers; > > CRYPTO_EX_DATA ex_data; > > > > struct ssl_session_st *prev,*next; > > char *tlsext_hostname; > > unsigned char *tlsext_tick; > size_t tlsext_ticklen; > long tlsext_tick_lifetime_hint; > > } SSL_SESSION; ># 584 "/usr/include/openssl/ssl.h" 3 4 >void SSL_CTX_set_msg_callback(SSL_CTX *ctx, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg)); >void SSL_set_msg_callback(SSL *ssl, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg)); ># 612 "/usr/include/openssl/ssl.h" 3 4 >typedef int (*GEN_SESSION_CB)(const SSL *ssl, unsigned char *id, > unsigned int *id_len); > >typedef struct ssl_comp_st > { > int id; > const char *name; > > COMP_METHOD *method; > > > > } SSL_COMP; > > > >struct ssl_ctx_st > { > SSL_METHOD *method; > > STACK *cipher_list; > > STACK *cipher_list_by_id; > > struct x509_store_st *cert_store; > struct lhash_st *sessions; > > > unsigned long session_cache_size; > struct ssl_session_st *session_cache_head; > struct ssl_session_st *session_cache_tail; > > > > > > > int session_cache_mode; > > > > > long session_timeout; ># 664 "/usr/include/openssl/ssl.h" 3 4 > int (*new_session_cb)(struct ssl_st *ssl,SSL_SESSION *sess); > void (*remove_session_cb)(struct ssl_ctx_st *ctx,SSL_SESSION *sess); > SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, > unsigned char *data,int len,int *copy); > > struct > { > int sess_connect; > int sess_connect_renegotiate; > int sess_connect_good; > int sess_accept; > int sess_accept_renegotiate; > int sess_accept_good; > int sess_miss; > int sess_timeout; > int sess_cache_full; > int sess_hit; > int sess_cb_hit; > > > > > > } stats; > > int references; > > > int (*app_verify_callback)(X509_STORE_CTX *, void *); > void *app_verify_arg; > > > > > pem_password_cb *default_passwd_callback; > > > void *default_passwd_callback_userdata; > > > int (*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey); > > > int (*app_gen_cookie_cb)(SSL *ssl, unsigned char *cookie, > unsigned int *cookie_len); > > > int (*app_verify_cookie_cb)(SSL *ssl, unsigned char *cookie, > unsigned int cookie_len); > > CRYPTO_EX_DATA ex_data; > > const EVP_MD *rsa_md5; > const EVP_MD *md5; > const EVP_MD *sha1; > > STACK *extra_certs; > STACK *comp_methods; > > > > > void (*info_callback)(const SSL *ssl,int type,int val); > > > STACK *client_CA; > > > > > unsigned long options; > unsigned long mode; > long max_cert_list; > > struct cert_st *cert; > int read_ahead; > > > void (*msg_callback)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg); > void *msg_callback_arg; > > int verify_mode; > unsigned int sid_ctx_length; > unsigned char sid_ctx[32]; > int (*default_verify_callback)(int ok,X509_STORE_CTX *ctx); > > > GEN_SESSION_CB generate_session_id; > > X509_VERIFY_PARAM *param; > > > > > > > int quiet_shutdown; > > > > int (*tlsext_servername_callback)(SSL*, int *, void *); > void *tlsext_servername_arg; > > unsigned char tlsext_tick_key_name[16]; > unsigned char tlsext_tick_hmac_key[16]; > unsigned char tlsext_tick_aes_key[16]; > > > }; ># 785 "/usr/include/openssl/ssl.h" 3 4 > struct lhash_st *SSL_CTX_sessions(SSL_CTX *ctx); ># 811 "/usr/include/openssl/ssl.h" 3 4 >void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, int (*new_session_cb)(struct ssl_st *ssl,SSL_SESSION *sess)); >int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx))(struct ssl_st *ssl, SSL_SESSION *sess); >void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, void (*remove_session_cb)(struct ssl_ctx_st *ctx,SSL_SESSION *sess)); >void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx))(struct ssl_ctx_st *ctx, SSL_SESSION *sess); >void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, unsigned char *data,int len,int *copy)); >SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx))(struct ssl_st *ssl, unsigned char *Data, int len, int *copy); >void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*cb)(const SSL *ssl,int type,int val)); >void (*SSL_CTX_get_info_callback(SSL_CTX *ctx))(const SSL *ssl,int type,int val); >void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, int (*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey)); >int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx))(SSL *ssl, X509 **x509, EVP_PKEY **pkey); >void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, int (*app_gen_cookie_cb)(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len)); >void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, int (*app_verify_cookie_cb)(SSL *ssl, unsigned char *cookie, unsigned int cookie_len)); ># 835 "/usr/include/openssl/ssl.h" 3 4 >struct ssl_st > { > > > > int version; > int type; > > SSL_METHOD *method; > > > > > > > BIO *rbio; > BIO *wbio; > BIO *bbio; ># 863 "/usr/include/openssl/ssl.h" 3 4 > int rwstate; > > > int in_handshake; > int (*handshake_func)(SSL *); ># 877 "/usr/include/openssl/ssl.h" 3 4 > int server; > > int new_session; > > > > > > int quiet_shutdown; > int shutdown; > > int state; > int rstate; > > BUF_MEM *init_buf; > void *init_msg; > int init_num; > int init_off; > > > unsigned char *packet; > unsigned int packet_length; > > struct ssl2_state_st *s2; > struct ssl3_state_st *s3; > struct dtls1_state_st *d1; > > int read_ahead; > > > > void (*msg_callback)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg); > void *msg_callback_arg; > > int hit; > > X509_VERIFY_PARAM *param; > > > > > > > > STACK *cipher_list; > STACK *cipher_list_by_id; > > > > > EVP_CIPHER_CTX *enc_read_ctx; > const EVP_MD *read_hash; > > COMP_CTX *expand; > > > > > EVP_CIPHER_CTX *enc_write_ctx; > const EVP_MD *write_hash; > > COMP_CTX *compress; ># 947 "/usr/include/openssl/ssl.h" 3 4 > struct cert_st *cert; > > > > unsigned int sid_ctx_length; > unsigned char sid_ctx[32]; > > > SSL_SESSION *session; > > > GEN_SESSION_CB generate_session_id; > > > int verify_mode; > > int (*verify_callback)(int ok,X509_STORE_CTX *ctx); > > void (*info_callback)(const SSL *ssl,int type,int val); > > int error; > int error_code; > > > > > > SSL_CTX *ctx; > > > int debug; > > > long verify_result; > CRYPTO_EX_DATA ex_data; > > > STACK *client_CA; > > int references; > unsigned long options; > unsigned long mode; > long max_cert_list; > int first_packet; > int client_version; > > > > void (*tlsext_debug_cb)(SSL *s, int client_server, int type, > unsigned char *data, int len, > void *arg); > void *tlsext_debug_arg; > char *tlsext_hostname; > int servername_done; > > > > > > int tlsext_ticket_expected; > SSL_CTX * initial_ctx; > > > > > }; > > >} > > ># 1 "/usr/include/openssl/ssl2.h" 1 3 4 ># 63 "/usr/include/openssl/ssl2.h" 3 4 >extern "C" { ># 158 "/usr/include/openssl/ssl2.h" 3 4 >typedef struct ssl2_state_st > { > int three_byte_header; > int clear_text; > int escape; > int ssl2_rollback; > > > > unsigned int wnum; > int wpend_tot; > const unsigned char *wpend_buf; > > int wpend_off; > int wpend_len; > int wpend_ret; > > > int rbuf_left; > int rbuf_offs; > unsigned char *rbuf; > unsigned char *wbuf; > > unsigned char *write_ptr; > > > unsigned int padding; > unsigned int rlength; > int ract_data_length; > unsigned int wlength; > int wact_data_length; > unsigned char *ract_data; > unsigned char *wact_data; > unsigned char *mac_data; > > unsigned char *read_key; > unsigned char *write_key; > > > unsigned int challenge_length; > unsigned char challenge[32]; > unsigned int conn_id_length; > unsigned char conn_id[16]; > unsigned int key_material_length; > unsigned char key_material[24*2]; > > unsigned long read_sequence; > unsigned long write_sequence; > > struct { > unsigned int conn_id_length; > unsigned int cert_type; > unsigned int cert_length; > unsigned int csl; > unsigned int clear; > unsigned int enc; > unsigned char ccl[32]; > unsigned int cipher_spec_length; > unsigned int session_id_length; > unsigned int clen; > unsigned int rlen; > } tmp; > } SSL2_STATE; ># 265 "/usr/include/openssl/ssl2.h" 3 4 >} ># 1019 "/usr/include/openssl/ssl.h" 2 3 4 ># 1 "/usr/include/openssl/ssl3.h" 1 3 4 ># 125 "/usr/include/openssl/ssl3.h" 3 4 ># 1 "/usr/include/openssl/ssl.h" 1 3 4 ># 126 "/usr/include/openssl/ssl3.h" 2 3 4 ># 1 "/usr/include/openssl/pq_compat.h" 1 3 4 ># 60 "/usr/include/openssl/pq_compat.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 61 "/usr/include/openssl/pq_compat.h" 2 3 4 ># 127 "/usr/include/openssl/ssl3.h" 2 3 4 > > >extern "C" { ># 294 "/usr/include/openssl/ssl3.h" 3 4 >typedef struct ssl3_record_st > { > int type; > unsigned int length; > unsigned int off; > unsigned char *data; > unsigned char *input; > unsigned char *comp; > unsigned long epoch; > unsigned long long seq_num; > } SSL3_RECORD; > >typedef struct ssl3_buffer_st > { > unsigned char *buf; > > size_t len; > int offset; > int left; > } SSL3_BUFFER; ># 334 "/usr/include/openssl/ssl3.h" 3 4 >typedef struct ssl3_state_st > { > long flags; > int delay_buf_pop_ret; > > unsigned char read_sequence[8]; > unsigned char read_mac_secret[64]; > unsigned char write_sequence[8]; > unsigned char write_mac_secret[64]; > > unsigned char server_random[32]; > unsigned char client_random[32]; > > > int need_empty_fragments; > int empty_fragment_done; > > SSL3_BUFFER rbuf; > SSL3_BUFFER wbuf; > > SSL3_RECORD rrec; > SSL3_RECORD wrec; > > > > unsigned char alert_fragment[2]; > unsigned int alert_fragment_len; > unsigned char handshake_fragment[4]; > unsigned int handshake_fragment_len; > > > unsigned int wnum; > int wpend_tot; > int wpend_type; > int wpend_ret; > const unsigned char *wpend_buf; > > > EVP_MD_CTX finish_dgst1; > EVP_MD_CTX finish_dgst2; > > > > int change_cipher_spec; > > int warn_alert; > int fatal_alert; > > > int alert_dispatch; > unsigned char send_alert[2]; > > > > int renegotiate; > int total_renegotiations; > int num_renegotiations; > > int in_read_app_data; > > struct { > > unsigned char cert_verify_md[64*2]; > > > unsigned char finish_md[64*2]; > int finish_md_len; > unsigned char peer_finish_md[64*2]; > int peer_finish_md_len; > > unsigned long message_size; > int message_type; > > > SSL_CIPHER *new_cipher; > > DH *dh; > > > > > int next_state; > > int reuse_message; > > > int cert_req; > int ctype_num; > char ctype[7]; > STACK *ca_names; > > int use_rsa_tmp; > > int key_block_length; > unsigned char *key_block; > > const EVP_CIPHER *new_sym_enc; > const EVP_MD *new_hash; > > const SSL_COMP *new_compression; > > > > int cert_request; > } tmp; > > } SSL3_STATE; ># 554 "/usr/include/openssl/ssl3.h" 3 4 >} ># 1020 "/usr/include/openssl/ssl.h" 2 3 4 ># 1 "/usr/include/openssl/tls1.h" 1 3 4 ># 78 "/usr/include/openssl/tls1.h" 3 4 >extern "C" { ># 125 "/usr/include/openssl/tls1.h" 3 4 >const char *SSL_get_servername(const SSL *s, const int type) ; >int SSL_get_servername_type(const SSL *s) ; ># 369 "/usr/include/openssl/tls1.h" 3 4 >} ># 1021 "/usr/include/openssl/ssl.h" 2 3 4 ># 1 "/usr/include/openssl/dtls1.h" 1 3 4 ># 64 "/usr/include/openssl/dtls1.h" 3 4 ># 1 "/usr/include/openssl/pqueue.h" 1 3 4 ># 67 "/usr/include/openssl/pqueue.h" 3 4 ># 1 "/usr/include/openssl/pq_compat.h" 1 3 4 ># 60 "/usr/include/openssl/pq_compat.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 61 "/usr/include/openssl/pq_compat.h" 2 3 4 ># 68 "/usr/include/openssl/pqueue.h" 2 3 4 > >typedef struct _pqueue *pqueue; > >typedef struct _pitem > { > unsigned long long priority; > void *data; > struct _pitem *next; > } pitem; > >typedef struct _pitem *piterator; > >pitem *pitem_new(unsigned long long priority, void *data); >void pitem_free(pitem *item); > >pqueue pqueue_new(void); >void pqueue_free(pqueue pq); > >pitem *pqueue_insert(pqueue pq, pitem *item); >pitem *pqueue_peek(pqueue pq); >pitem *pqueue_pop(pqueue pq); >pitem *pqueue_find(pqueue pq, unsigned long long priority); >pitem *pqueue_iterator(pqueue pq); >pitem *pqueue_next(piterator *iter); > >void pqueue_print(pqueue pq); ># 65 "/usr/include/openssl/dtls1.h" 2 3 4 > > >extern "C" { ># 90 "/usr/include/openssl/dtls1.h" 3 4 >typedef struct dtls1_bitmap_st > { > unsigned long long map; > unsigned long length; > unsigned long long max_seq_num; > } DTLS1_BITMAP; > >struct hm_header_st > { > unsigned char type; > unsigned long msg_len; > unsigned short seq; > unsigned long frag_off; > unsigned long frag_len; > unsigned int is_ccs; > }; > >struct ccs_header_st > { > unsigned char type; > unsigned short seq; > }; > >struct dtls1_timeout_st > { > > unsigned int read_timeouts; > > > unsigned int write_timeouts; > > > unsigned int num_alerts; > }; > >typedef struct record_pqueue_st > { > unsigned short epoch; > pqueue q; > } record_pqueue; > >typedef struct hm_fragment_st > { > struct hm_header_st msg_header; > unsigned char *fragment; > } hm_fragment; > >typedef struct dtls1_state_st > { > unsigned int send_cookie; > unsigned char cookie[32]; > unsigned char rcvd_cookie[32]; > unsigned int cookie_len; > > > > > > > unsigned short r_epoch; > unsigned short w_epoch; > > > DTLS1_BITMAP bitmap; > > > DTLS1_BITMAP next_bitmap; > > > unsigned short handshake_write_seq; > unsigned short next_handshake_write_seq; > > unsigned short handshake_read_seq; > > > record_pqueue unprocessed_rcds; > record_pqueue processed_rcds; > > > pqueue buffered_messages; > > > pqueue sent_messages; > > unsigned int mtu; > > struct hm_header_st w_msg_hdr; > struct hm_header_st r_msg_hdr; > > struct dtls1_timeout_st timeout; > > > > unsigned char alert_fragment[7]; > unsigned int alert_fragment_len; > unsigned char handshake_fragment[12]; > unsigned int handshake_fragment_len; > > unsigned int retransmitting; > > } DTLS1_STATE; > >typedef struct dtls1_record_data_st > { > unsigned char *packet; > unsigned int packet_length; > SSL3_BUFFER rbuf; > SSL3_RECORD rrec; > } DTLS1_RECORD_DATA; ># 208 "/usr/include/openssl/dtls1.h" 3 4 >} ># 1022 "/usr/include/openssl/ssl.h" 2 3 4 ># 1 "/usr/include/openssl/ssl23.h" 1 3 4 ># 63 "/usr/include/openssl/ssl23.h" 3 4 >extern "C" { ># 80 "/usr/include/openssl/ssl23.h" 3 4 >} ># 1023 "/usr/include/openssl/ssl.h" 2 3 4 > > >extern "C" { ># 1083 "/usr/include/openssl/ssl.h" 3 4 >size_t SSL_get_finished(const SSL *s, void *buf, size_t count); >size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); ># 1260 "/usr/include/openssl/ssl.h" 3 4 >BIO_METHOD *BIO_f_ssl(void); >BIO *BIO_new_ssl(SSL_CTX *ctx,int client); >BIO *BIO_new_ssl_connect(SSL_CTX *ctx); >BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); >int BIO_ssl_copy_session_id(BIO *to,BIO *from); >void BIO_ssl_shutdown(BIO *ssl_bio); > > > >int SSL_CTX_set_cipher_list(SSL_CTX *,const char *str); >SSL_CTX *SSL_CTX_new(SSL_METHOD *meth); >void SSL_CTX_free(SSL_CTX *); >long SSL_CTX_set_timeout(SSL_CTX *ctx,long t); >long SSL_CTX_get_timeout(const SSL_CTX *ctx); >X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); >void SSL_CTX_set_cert_store(SSL_CTX *,X509_STORE *); >int SSL_want(const SSL *s); >int SSL_clear(SSL *s); > >void SSL_CTX_flush_sessions(SSL_CTX *ctx,long tm); > >SSL_CIPHER *SSL_get_current_cipher(const SSL *s); >int SSL_CIPHER_get_bits(const SSL_CIPHER *c,int *alg_bits); >char * SSL_CIPHER_get_version(const SSL_CIPHER *c); >const char * SSL_CIPHER_get_name(const SSL_CIPHER *c); > >int SSL_get_fd(const SSL *s); >int SSL_get_rfd(const SSL *s); >int SSL_get_wfd(const SSL *s); >const char * SSL_get_cipher_list(const SSL *s,int n); >char * SSL_get_shared_ciphers(const SSL *s, char *buf, int len); >int SSL_get_read_ahead(const SSL * s); >int SSL_pending(const SSL *s); > >int SSL_set_fd(SSL *s, int fd); >int SSL_set_rfd(SSL *s, int fd); >int SSL_set_wfd(SSL *s, int fd); > > >void SSL_set_bio(SSL *s, BIO *rbio,BIO *wbio); >BIO * SSL_get_rbio(const SSL *s); >BIO * SSL_get_wbio(const SSL *s); > >int SSL_set_cipher_list(SSL *s, const char *str); >void SSL_set_read_ahead(SSL *s, int yes); >int SSL_get_verify_mode(const SSL *s); >int SSL_get_verify_depth(const SSL *s); >int (*SSL_get_verify_callback(const SSL *s))(int,X509_STORE_CTX *); >void SSL_set_verify(SSL *s, int mode, > int (*callback)(int ok,X509_STORE_CTX *ctx)); >void SSL_set_verify_depth(SSL *s, int depth); > >int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); > >int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len); >int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); >int SSL_use_PrivateKey_ASN1(int pk,SSL *ssl, const unsigned char *d, long len); >int SSL_use_certificate(SSL *ssl, X509 *x); >int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); > > >int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); >int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); >int SSL_use_certificate_file(SSL *ssl, const char *file, int type); >int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type); >int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type); >int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type); >int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); >STACK *SSL_load_client_CA_file(const char *file); >int SSL_add_file_cert_subjects_to_stack(STACK *stackCAs, > const char *file); > > >int SSL_add_dir_cert_subjects_to_stack(STACK *stackCAs, > const char *dir); > > > > > >void SSL_load_error_strings(void ); >const char *SSL_state_string(const SSL *s); >const char *SSL_rstate_string(const SSL *s); >const char *SSL_state_string_long(const SSL *s); >const char *SSL_rstate_string_long(const SSL *s); >long SSL_SESSION_get_time(const SSL_SESSION *s); >long SSL_SESSION_set_time(SSL_SESSION *s, long t); >long SSL_SESSION_get_timeout(const SSL_SESSION *s); >long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); >void SSL_copy_session_id(SSL *to,const SSL *from); > >SSL_SESSION *SSL_SESSION_new(void); >unsigned long SSL_SESSION_hash(const SSL_SESSION *a); >int SSL_SESSION_cmp(const SSL_SESSION *a,const SSL_SESSION *b); >const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len); > >int SSL_SESSION_print_fp(FILE *fp,const SSL_SESSION *ses); > > >int SSL_SESSION_print(BIO *fp,const SSL_SESSION *ses); > >void SSL_SESSION_free(SSL_SESSION *ses); >int i2d_SSL_SESSION(SSL_SESSION *in,unsigned char **pp); >int SSL_set_session(SSL *to, SSL_SESSION *session); >int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c); >int SSL_CTX_remove_session(SSL_CTX *,SSL_SESSION *c); >int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); >int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); >int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, > unsigned int id_len); >SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a,const unsigned char **pp, > long length); > > >X509 * SSL_get_peer_certificate(const SSL *s); > > >STACK *SSL_get_peer_cert_chain(const SSL *s); > >int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); >int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); >int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int,X509_STORE_CTX *); >void SSL_CTX_set_verify(SSL_CTX *ctx,int mode, > int (*callback)(int, X509_STORE_CTX *)); >void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth); >void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*cb)(X509_STORE_CTX *,void *), void *arg); > >int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); > >int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, long len); >int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); >int SSL_CTX_use_PrivateKey_ASN1(int pk,SSL_CTX *ctx, > const unsigned char *d, long len); >int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); >int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, const unsigned char *d); > >void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); >void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); > >int SSL_CTX_check_private_key(const SSL_CTX *ctx); >int SSL_check_private_key(const SSL *ctx); > >int SSL_CTX_set_session_id_context(SSL_CTX *ctx,const unsigned char *sid_ctx, > unsigned int sid_ctx_len); > >SSL * SSL_new(SSL_CTX *ctx); >int SSL_set_session_id_context(SSL *ssl,const unsigned char *sid_ctx, > unsigned int sid_ctx_len); > >int SSL_CTX_set_purpose(SSL_CTX *s, int purpose); >int SSL_set_purpose(SSL *s, int purpose); >int SSL_CTX_set_trust(SSL_CTX *s, int trust); >int SSL_set_trust(SSL *s, int trust); > >void SSL_free(SSL *ssl); >int SSL_accept(SSL *ssl); >int SSL_connect(SSL *ssl); >int SSL_read(SSL *ssl,void *buf,int num); >int SSL_peek(SSL *ssl,void *buf,int num); >int SSL_write(SSL *ssl,const void *buf,int num); >long SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg); >long SSL_callback_ctrl(SSL *, int, void (*)(void)); >long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd, long larg, void *parg); >long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); > >int SSL_get_error(const SSL *s,int ret_code); >const char *SSL_get_version(const SSL *s); > > >int SSL_CTX_set_ssl_version(SSL_CTX *ctx,SSL_METHOD *meth); > >SSL_METHOD *SSLv2_method(void); >SSL_METHOD *SSLv2_server_method(void); >SSL_METHOD *SSLv2_client_method(void); > >SSL_METHOD *SSLv3_method(void); >SSL_METHOD *SSLv3_server_method(void); >SSL_METHOD *SSLv3_client_method(void); > >SSL_METHOD *SSLv23_method(void); >SSL_METHOD *SSLv23_server_method(void); >SSL_METHOD *SSLv23_client_method(void); > >SSL_METHOD *TLSv1_method(void); >SSL_METHOD *TLSv1_server_method(void); >SSL_METHOD *TLSv1_client_method(void); > >SSL_METHOD *DTLSv1_method(void); >SSL_METHOD *DTLSv1_server_method(void); >SSL_METHOD *DTLSv1_client_method(void); > >STACK *SSL_get_ciphers(const SSL *s); > >int SSL_do_handshake(SSL *s); >int SSL_renegotiate(SSL *s); >int SSL_renegotiate_pending(SSL *s); >int SSL_shutdown(SSL *s); > >SSL_METHOD *SSL_get_ssl_method(SSL *s); >int SSL_set_ssl_method(SSL *s,SSL_METHOD *method); >const char *SSL_alert_type_string_long(int value); >const char *SSL_alert_type_string(int value); >const char *SSL_alert_desc_string_long(int value); >const char *SSL_alert_desc_string(int value); > >void SSL_set_client_CA_list(SSL *s, STACK *name_list); >void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK *name_list); >STACK *SSL_get_client_CA_list(const SSL *s); >STACK *SSL_CTX_get_client_CA_list(const SSL_CTX *s); >int SSL_add_client_CA(SSL *ssl,X509 *x); >int SSL_CTX_add_client_CA(SSL_CTX *ctx,X509 *x); > >void SSL_set_connect_state(SSL *s); >void SSL_set_accept_state(SSL *s); > >long SSL_get_default_timeout(const SSL *s); > >int SSL_library_init(void ); > >char *SSL_CIPHER_description(SSL_CIPHER *,char *buf,int size); >STACK *SSL_dup_CA_list(STACK *sk); > >SSL *SSL_dup(SSL *ssl); > >X509 *SSL_get_certificate(const SSL *ssl); > struct evp_pkey_st *SSL_get_privatekey(SSL *ssl); > >void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx,int mode); >int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); >void SSL_set_quiet_shutdown(SSL *ssl,int mode); >int SSL_get_quiet_shutdown(const SSL *ssl); >void SSL_set_shutdown(SSL *ssl,int mode); >int SSL_get_shutdown(const SSL *ssl); >int SSL_version(const SSL *ssl); >int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); >int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, > const char *CApath); > >SSL_SESSION *SSL_get_session(const SSL *ssl); >SSL_SESSION *SSL_get1_session(SSL *ssl); >SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); >SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX* ctx); >void SSL_set_info_callback(SSL *ssl, > void (*cb)(const SSL *ssl,int type,int val)); >void (*SSL_get_info_callback(const SSL *ssl))(const SSL *ssl,int type,int val); >int SSL_state(const SSL *ssl); > >void SSL_set_verify_result(SSL *ssl,long v); >long SSL_get_verify_result(const SSL *ssl); > >int SSL_set_ex_data(SSL *ssl,int idx,void *data); >void *SSL_get_ex_data(const SSL *ssl,int idx); >int SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, > CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); > >int SSL_SESSION_set_ex_data(SSL_SESSION *ss,int idx,void *data); >void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss,int idx); >int SSL_SESSION_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, > CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); > >int SSL_CTX_set_ex_data(SSL_CTX *ssl,int idx,void *data); >void *SSL_CTX_get_ex_data(const SSL_CTX *ssl,int idx); >int SSL_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, > CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); > >int SSL_get_ex_data_X509_STORE_CTX_idx(void ); ># 1553 "/usr/include/openssl/ssl.h" 3 4 >void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, > RSA *(*cb)(SSL *ssl,int is_export, > int keylength)); > >void SSL_set_tmp_rsa_callback(SSL *ssl, > RSA *(*cb)(SSL *ssl,int is_export, > int keylength)); > > >void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, > DH *(*dh)(SSL *ssl,int is_export, > int keylength)); >void SSL_set_tmp_dh_callback(SSL *ssl, > DH *(*dh)(SSL *ssl,int is_export, > int keylength)); > > > >const COMP_METHOD *SSL_get_current_compression(SSL *s); >const COMP_METHOD *SSL_get_current_expansion(SSL *s); >const char *SSL_COMP_get_name(const COMP_METHOD *comp); >STACK *SSL_COMP_get_compression_methods(void); >int SSL_COMP_add_compression_method(int id,COMP_METHOD *cm); ># 1588 "/usr/include/openssl/ssl.h" 3 4 >void ERR_load_SSL_strings(void); ># 2016 "/usr/include/openssl/ssl.h" 3 4 >} ># 616 "../condor_includes/stdsoap2.h" 2 ># 1 "/usr/include/openssl/x509v3.h" 1 3 4 ># 63 "/usr/include/openssl/x509v3.h" 3 4 ># 1 "/usr/include/openssl/conf.h" 1 3 4 ># 66 "/usr/include/openssl/conf.h" 3 4 ># 1 "/usr/include/openssl/e_os2.h" 1 3 4 ># 56 "/usr/include/openssl/e_os2.h" 3 4 ># 1 "/usr/include/openssl/opensslconf.h" 1 3 4 ># 13 "/usr/include/openssl/opensslconf.h" 3 4 ># 1 "/usr/include/openssl/opensslconf-i386.h" 1 3 4 ># 14 "/usr/include/openssl/opensslconf.h" 2 3 4 ># 57 "/usr/include/openssl/e_os2.h" 2 3 4 ># 67 "/usr/include/openssl/conf.h" 2 3 4 > > > > >extern "C" { > > >typedef struct > { > char *section; > char *name; > char *value; > } CONF_VALUE; > > > > > >struct conf_st; >struct conf_method_st; >typedef struct conf_method_st CONF_METHOD; > >struct conf_method_st > { > const char *name; > CONF *(*create)(CONF_METHOD *meth); > int (*init)(CONF *conf); > int (*destroy)(CONF *conf); > int (*destroy_data)(CONF *conf); > int (*load_bio)(CONF *conf, BIO *bp, long *eline); > int (*dump)(const CONF *conf, BIO *bp); > int (*is_number)(const CONF *conf, char c); > int (*to_int)(const CONF *conf, char c); > int (*load)(CONF *conf, const char *name, long *eline); > }; > > > >typedef struct conf_imodule_st CONF_IMODULE; >typedef struct conf_module_st CONF_MODULE; > > >typedef int conf_init_func(CONF_IMODULE *md, const CONF *cnf); >typedef void conf_finish_func(CONF_IMODULE *md); ># 119 "/usr/include/openssl/conf.h" 3 4 >int CONF_set_default_method(CONF_METHOD *meth); >void CONF_set_nconf(CONF *conf,LHASH *hash); >LHASH *CONF_load(LHASH *conf,const char *file,long *eline); > >LHASH *CONF_load_fp(LHASH *conf, FILE *fp,long *eline); > >LHASH *CONF_load_bio(LHASH *conf, BIO *bp,long *eline); >STACK *CONF_get_section(LHASH *conf,const char *section); >char *CONF_get_string(LHASH *conf,const char *group,const char *name); >long CONF_get_number(LHASH *conf,const char *group,const char *name); >void CONF_free(LHASH *conf); >int CONF_dump_fp(LHASH *conf, FILE *out); >int CONF_dump_bio(LHASH *conf, BIO *out); > >void OPENSSL_config(const char *config_name); >void OPENSSL_no_config(void); > > > > >struct conf_st > { > CONF_METHOD *meth; > void *meth_data; > LHASH *data; > }; > >CONF *NCONF_new(CONF_METHOD *meth); >CONF_METHOD *NCONF_default(void); >CONF_METHOD *NCONF_WIN32(void); > > > >void NCONF_free(CONF *conf); >void NCONF_free_data(CONF *conf); > >int NCONF_load(CONF *conf,const char *file,long *eline); > >int NCONF_load_fp(CONF *conf, FILE *fp,long *eline); > >int NCONF_load_bio(CONF *conf, BIO *bp,long *eline); >STACK *NCONF_get_section(const CONF *conf,const char *section); >char *NCONF_get_string(const CONF *conf,const char *group,const char *name); >int NCONF_get_number_e(const CONF *conf,const char *group,const char *name, > long *result); >int NCONF_dump_fp(const CONF *conf, FILE *out); >int NCONF_dump_bio(const CONF *conf, BIO *out); ># 176 "/usr/include/openssl/conf.h" 3 4 >int CONF_modules_load(const CONF *cnf, const char *appname, > unsigned long flags); >int CONF_modules_load_file(const char *filename, const char *appname, > unsigned long flags); >void CONF_modules_unload(int all); >void CONF_modules_finish(void); >void CONF_modules_free(void); >int CONF_module_add(const char *name, conf_init_func *ifunc, > conf_finish_func *ffunc); > >const char *CONF_imodule_get_name(const CONF_IMODULE *md); >const char *CONF_imodule_get_value(const CONF_IMODULE *md); >void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); >void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); >CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); >unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); >void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); >void *CONF_module_get_usr_data(CONF_MODULE *pmod); >void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); > >char *CONF_get1_default_config_file(void); > >int CONF_parse_list(const char *list, int sep, int nospc, > int (*list_cb)(const char *elem, int len, void *usr), void *arg); > >void OPENSSL_load_builtin_modules(void); > > > > > >void ERR_load_CONF_strings(void); ># 252 "/usr/include/openssl/conf.h" 3 4 >} ># 64 "/usr/include/openssl/x509v3.h" 2 3 4 > > >extern "C" { > > > >struct v3_ext_method; >struct v3_ext_ctx; > > > >typedef void * (*X509V3_EXT_NEW)(void); >typedef void (*X509V3_EXT_FREE)(void *); >typedef void * (*X509V3_EXT_D2I)(void *, const unsigned char ** , long); >typedef int (*X509V3_EXT_I2D)(void *, unsigned char **); >typedef STACK * (*X509V3_EXT_I2V)(struct v3_ext_method *method, void *ext, STACK *extlist); >typedef void * (*X509V3_EXT_V2I)(struct v3_ext_method *method, struct v3_ext_ctx *ctx, STACK *values); >typedef char * (*X509V3_EXT_I2S)(struct v3_ext_method *method, void *ext); >typedef void * (*X509V3_EXT_S2I)(struct v3_ext_method *method, struct v3_ext_ctx *ctx, const char *str); >typedef int (*X509V3_EXT_I2R)(struct v3_ext_method *method, void *ext, BIO *out, int indent); >typedef void * (*X509V3_EXT_R2I)(struct v3_ext_method *method, struct v3_ext_ctx *ctx, const char *str); > > > >struct v3_ext_method { >int ext_nid; >int ext_flags; > >ASN1_ITEM_EXP *it; > >X509V3_EXT_NEW ext_new; >X509V3_EXT_FREE ext_free; >X509V3_EXT_D2I d2i; >X509V3_EXT_I2D i2d; > > >X509V3_EXT_I2S i2s; >X509V3_EXT_S2I s2i; > > >X509V3_EXT_I2V i2v; >X509V3_EXT_V2I v2i; > > >X509V3_EXT_I2R i2r; >X509V3_EXT_R2I r2i; > >void *usr_data; >}; > >typedef struct X509V3_CONF_METHOD_st { >char * (*get_string)(void *db, char *section, char *value); >STACK * (*get_section)(void *db, char *section); >void (*free_string)(void *db, char * string); >void (*free_section)(void *db, STACK *section); >} X509V3_CONF_METHOD; > > >struct v3_ext_ctx { > >int flags; >X509 *issuer_cert; >X509 *subject_cert; >X509_REQ *subject_req; >X509_CRL *crl; >X509V3_CONF_METHOD *db_meth; >void *db; > >}; > >typedef struct v3_ext_method X509V3_EXT_METHOD; > > > > > > > > >typedef BIT_STRING_BITNAME ENUMERATED_NAMES; > >typedef struct BASIC_CONSTRAINTS_st { >int ca; >ASN1_INTEGER *pathlen; >} BASIC_CONSTRAINTS; > > >typedef struct PKEY_USAGE_PERIOD_st { >ASN1_GENERALIZEDTIME *notBefore; >ASN1_GENERALIZEDTIME *notAfter; >} PKEY_USAGE_PERIOD; > >typedef struct otherName_st { >ASN1_OBJECT *type_id; >ASN1_TYPE *value; >} OTHERNAME; > >typedef struct EDIPartyName_st { > ASN1_STRING *nameAssigner; > ASN1_STRING *partyName; >} EDIPARTYNAME; > >typedef struct GENERAL_NAME_st { ># 178 "/usr/include/openssl/x509v3.h" 3 4 >int type; >union { > char *ptr; > OTHERNAME *otherName; > ASN1_IA5STRING *rfc822Name; > ASN1_IA5STRING *dNSName; > ASN1_TYPE *x400Address; > X509_NAME *directoryName; > EDIPARTYNAME *ediPartyName; > ASN1_IA5STRING *uniformResourceIdentifier; > ASN1_OCTET_STRING *iPAddress; > ASN1_OBJECT *registeredID; > > > ASN1_OCTET_STRING *ip; > X509_NAME *dirn; > ASN1_IA5STRING *ia5; > ASN1_OBJECT *rid; > ASN1_TYPE *other; >} d; >} GENERAL_NAME; > >typedef STACK GENERAL_NAMES; > >typedef struct ACCESS_DESCRIPTION_st { > ASN1_OBJECT *method; > GENERAL_NAME *location; >} ACCESS_DESCRIPTION; > >typedef STACK AUTHORITY_INFO_ACCESS; > >typedef STACK EXTENDED_KEY_USAGE; > > > > > > > >typedef struct DIST_POINT_NAME_st { >int type; >union { > GENERAL_NAMES *fullname; > STACK *relativename; >} name; >} DIST_POINT_NAME; > >typedef struct DIST_POINT_st { >DIST_POINT_NAME *distpoint; >ASN1_BIT_STRING *reasons; >GENERAL_NAMES *CRLissuer; >} DIST_POINT; > >typedef STACK CRL_DIST_POINTS; > > > > >typedef struct AUTHORITY_KEYID_st { >ASN1_OCTET_STRING *keyid; >GENERAL_NAMES *issuer; >ASN1_INTEGER *serial; >} AUTHORITY_KEYID; > > > >typedef struct SXNET_ID_st { > ASN1_INTEGER *zone; > ASN1_OCTET_STRING *user; >} SXNETID; > > > > >typedef struct SXNET_st { > ASN1_INTEGER *version; > STACK *ids; >} SXNET; > >typedef struct NOTICEREF_st { > ASN1_STRING *organization; > STACK *noticenos; >} NOTICEREF; > >typedef struct USERNOTICE_st { > NOTICEREF *noticeref; > ASN1_STRING *exptext; >} USERNOTICE; > >typedef struct POLICYQUALINFO_st { > ASN1_OBJECT *pqualid; > union { > ASN1_IA5STRING *cpsuri; > USERNOTICE *usernotice; > ASN1_TYPE *other; > } d; >} POLICYQUALINFO; > > > > >typedef struct POLICYINFO_st { > ASN1_OBJECT *policyid; > STACK *qualifiers; >} POLICYINFO; > >typedef STACK CERTIFICATEPOLICIES; > > > > >typedef struct POLICY_MAPPING_st { > ASN1_OBJECT *issuerDomainPolicy; > ASN1_OBJECT *subjectDomainPolicy; >} POLICY_MAPPING; > > > >typedef STACK POLICY_MAPPINGS; > >typedef struct GENERAL_SUBTREE_st { > GENERAL_NAME *base; > ASN1_INTEGER *minimum; > ASN1_INTEGER *maximum; >} GENERAL_SUBTREE; > > > >typedef struct NAME_CONSTRAINTS_st { > STACK *permittedSubtrees; > STACK *excludedSubtrees; >} NAME_CONSTRAINTS; > >typedef struct POLICY_CONSTRAINTS_st { > ASN1_INTEGER *requireExplicitPolicy; > ASN1_INTEGER *inhibitPolicyMapping; >} POLICY_CONSTRAINTS; > > >typedef struct PROXY_POLICY_st > { > ASN1_OBJECT *policyLanguage; > ASN1_OCTET_STRING *policy; > } PROXY_POLICY; > >typedef struct PROXY_CERT_INFO_EXTENSION_st > { > ASN1_INTEGER *pcPathLengthConstraint; > PROXY_POLICY *proxyPolicy; > } PROXY_CERT_INFO_EXTENSION; > >PROXY_POLICY *PROXY_POLICY_new(void); void PROXY_POLICY_free(PROXY_POLICY *a); PROXY_POLICY *d2i_PROXY_POLICY(PROXY_POLICY **a, const unsigned char **in, long len); int i2d_PROXY_POLICY(PROXY_POLICY *a, unsigned char **out); extern const ASN1_ITEM PROXY_POLICY_it; >PROXY_CERT_INFO_EXTENSION *PROXY_CERT_INFO_EXTENSION_new(void); void PROXY_CERT_INFO_EXTENSION_free(PROXY_CERT_INFO_EXTENSION *a); PROXY_CERT_INFO_EXTENSION *d2i_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION **a, const unsigned char **in, long len); int i2d_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION *a, unsigned char **out); extern const ASN1_ITEM PROXY_CERT_INFO_EXTENSION_it; ># 406 "/usr/include/openssl/x509v3.h" 3 4 >typedef struct x509_purpose_st { > int purpose; > int trust; > int flags; > int (*check_purpose)(const struct x509_purpose_st *, > const X509 *, int); > char *name; > char *sname; > void *usr_data; >} X509_PURPOSE; ># 452 "/usr/include/openssl/x509v3.h" 3 4 > > >BASIC_CONSTRAINTS *BASIC_CONSTRAINTS_new(void); void BASIC_CONSTRAINTS_free(BASIC_CONSTRAINTS *a); BASIC_CONSTRAINTS *d2i_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS **a, const unsigned char **in, long len); int i2d_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS *a, unsigned char **out); extern const ASN1_ITEM BASIC_CONSTRAINTS_it; > >SXNET *SXNET_new(void); void SXNET_free(SXNET *a); SXNET *d2i_SXNET(SXNET **a, const unsigned char **in, long len); int i2d_SXNET(SXNET *a, unsigned char **out); extern const ASN1_ITEM SXNET_it; >SXNETID *SXNETID_new(void); void SXNETID_free(SXNETID *a); SXNETID *d2i_SXNETID(SXNETID **a, const unsigned char **in, long len); int i2d_SXNETID(SXNETID *a, unsigned char **out); extern const ASN1_ITEM SXNETID_it; > >int SXNET_add_id_asc(SXNET **psx, char *zone, char *user, int userlen); >int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, char *user, int userlen); >int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, char *user, int userlen); > >ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, char *zone); >ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); >ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); > >AUTHORITY_KEYID *AUTHORITY_KEYID_new(void); void AUTHORITY_KEYID_free(AUTHORITY_KEYID *a); AUTHORITY_KEYID *d2i_AUTHORITY_KEYID(AUTHORITY_KEYID **a, const unsigned char **in, long len); int i2d_AUTHORITY_KEYID(AUTHORITY_KEYID *a, unsigned char **out); extern const ASN1_ITEM AUTHORITY_KEYID_it; > >PKEY_USAGE_PERIOD *PKEY_USAGE_PERIOD_new(void); void PKEY_USAGE_PERIOD_free(PKEY_USAGE_PERIOD *a); PKEY_USAGE_PERIOD *d2i_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD **a, const unsigned char **in, long len); int i2d_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD *a, unsigned char **out); extern const ASN1_ITEM PKEY_USAGE_PERIOD_it; > >GENERAL_NAME *GENERAL_NAME_new(void); void GENERAL_NAME_free(GENERAL_NAME *a); GENERAL_NAME *d2i_GENERAL_NAME(GENERAL_NAME **a, const unsigned char **in, long len); int i2d_GENERAL_NAME(GENERAL_NAME *a, unsigned char **out); extern const ASN1_ITEM GENERAL_NAME_it; > > >ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, > X509V3_CTX *ctx, STACK *nval); >STACK *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, > ASN1_BIT_STRING *bits, > STACK *extlist); > >STACK *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK *ret); >int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); > >GENERAL_NAMES *GENERAL_NAMES_new(void); void GENERAL_NAMES_free(GENERAL_NAMES *a); GENERAL_NAMES *d2i_GENERAL_NAMES(GENERAL_NAMES **a, const unsigned char **in, long len); int i2d_GENERAL_NAMES(GENERAL_NAMES *a, unsigned char **out); extern const ASN1_ITEM GENERAL_NAMES_it; > >STACK *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, > GENERAL_NAMES *gen, STACK *extlist); >GENERAL_NAMES *v2i_GENERAL_NAMES(X509V3_EXT_METHOD *method, > X509V3_CTX *ctx, STACK *nval); > >OTHERNAME *OTHERNAME_new(void); void OTHERNAME_free(OTHERNAME *a); OTHERNAME *d2i_OTHERNAME(OTHERNAME **a, const unsigned char **in, long len); int i2d_OTHERNAME(OTHERNAME *a, unsigned char **out); extern const ASN1_ITEM OTHERNAME_it; >EDIPARTYNAME *EDIPARTYNAME_new(void); void EDIPARTYNAME_free(EDIPARTYNAME *a); EDIPARTYNAME *d2i_EDIPARTYNAME(EDIPARTYNAME **a, const unsigned char **in, long len); int i2d_EDIPARTYNAME(EDIPARTYNAME *a, unsigned char **out); extern const ASN1_ITEM EDIPARTYNAME_it; > >char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, ASN1_OCTET_STRING *ia5); >ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str); > >EXTENDED_KEY_USAGE *EXTENDED_KEY_USAGE_new(void); void EXTENDED_KEY_USAGE_free(EXTENDED_KEY_USAGE *a); EXTENDED_KEY_USAGE *d2i_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE **a, const unsigned char **in, long len); int i2d_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE *a, unsigned char **out); extern const ASN1_ITEM EXTENDED_KEY_USAGE_it; >int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION* a); > >CERTIFICATEPOLICIES *CERTIFICATEPOLICIES_new(void); void CERTIFICATEPOLICIES_free(CERTIFICATEPOLICIES *a); CERTIFICATEPOLICIES *d2i_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES **a, const unsigned char **in, long len); int i2d_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES *a, unsigned char **out); extern const ASN1_ITEM CERTIFICATEPOLICIES_it; >POLICYINFO *POLICYINFO_new(void); void POLICYINFO_free(POLICYINFO *a); POLICYINFO *d2i_POLICYINFO(POLICYINFO **a, const unsigned char **in, long len); int i2d_POLICYINFO(POLICYINFO *a, unsigned char **out); extern const ASN1_ITEM POLICYINFO_it; >POLICYQUALINFO *POLICYQUALINFO_new(void); void POLICYQUALINFO_free(POLICYQUALINFO *a); POLICYQUALINFO *d2i_POLICYQUALINFO(POLICYQUALINFO **a, const unsigned char **in, long len); int i2d_POLICYQUALINFO(POLICYQUALINFO *a, unsigned char **out); extern const ASN1_ITEM POLICYQUALINFO_it; >USERNOTICE *USERNOTICE_new(void); void USERNOTICE_free(USERNOTICE *a); USERNOTICE *d2i_USERNOTICE(USERNOTICE **a, const unsigned char **in, long len); int i2d_USERNOTICE(USERNOTICE *a, unsigned char **out); extern const ASN1_ITEM USERNOTICE_it; >NOTICEREF *NOTICEREF_new(void); void NOTICEREF_free(NOTICEREF *a); NOTICEREF *d2i_NOTICEREF(NOTICEREF **a, const unsigned char **in, long len); int i2d_NOTICEREF(NOTICEREF *a, unsigned char **out); extern const ASN1_ITEM NOTICEREF_it; > >CRL_DIST_POINTS *CRL_DIST_POINTS_new(void); void CRL_DIST_POINTS_free(CRL_DIST_POINTS *a); CRL_DIST_POINTS *d2i_CRL_DIST_POINTS(CRL_DIST_POINTS **a, const unsigned char **in, long len); int i2d_CRL_DIST_POINTS(CRL_DIST_POINTS *a, unsigned char **out); extern const ASN1_ITEM CRL_DIST_POINTS_it; >DIST_POINT *DIST_POINT_new(void); void DIST_POINT_free(DIST_POINT *a); DIST_POINT *d2i_DIST_POINT(DIST_POINT **a, const unsigned char **in, long len); int i2d_DIST_POINT(DIST_POINT *a, unsigned char **out); extern const ASN1_ITEM DIST_POINT_it; >DIST_POINT_NAME *DIST_POINT_NAME_new(void); void DIST_POINT_NAME_free(DIST_POINT_NAME *a); DIST_POINT_NAME *d2i_DIST_POINT_NAME(DIST_POINT_NAME **a, const unsigned char **in, long len); int i2d_DIST_POINT_NAME(DIST_POINT_NAME *a, unsigned char **out); extern const ASN1_ITEM DIST_POINT_NAME_it; > >ACCESS_DESCRIPTION *ACCESS_DESCRIPTION_new(void); void ACCESS_DESCRIPTION_free(ACCESS_DESCRIPTION *a); ACCESS_DESCRIPTION *d2i_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION **a, const unsigned char **in, long len); int i2d_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION *a, unsigned char **out); extern const ASN1_ITEM ACCESS_DESCRIPTION_it; >AUTHORITY_INFO_ACCESS *AUTHORITY_INFO_ACCESS_new(void); void AUTHORITY_INFO_ACCESS_free(AUTHORITY_INFO_ACCESS *a); AUTHORITY_INFO_ACCESS *d2i_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS **a, const unsigned char **in, long len); int i2d_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS *a, unsigned char **out); extern const ASN1_ITEM AUTHORITY_INFO_ACCESS_it; > >extern const ASN1_ITEM POLICY_MAPPING_it; >POLICY_MAPPING *POLICY_MAPPING_new(void); void POLICY_MAPPING_free(POLICY_MAPPING *a); >extern const ASN1_ITEM POLICY_MAPPINGS_it; > >extern const ASN1_ITEM GENERAL_SUBTREE_it; >GENERAL_SUBTREE *GENERAL_SUBTREE_new(void); void GENERAL_SUBTREE_free(GENERAL_SUBTREE *a); > >extern const ASN1_ITEM NAME_CONSTRAINTS_it; >NAME_CONSTRAINTS *NAME_CONSTRAINTS_new(void); void NAME_CONSTRAINTS_free(NAME_CONSTRAINTS *a); > >POLICY_CONSTRAINTS *POLICY_CONSTRAINTS_new(void); void POLICY_CONSTRAINTS_free(POLICY_CONSTRAINTS *a); >extern const ASN1_ITEM POLICY_CONSTRAINTS_it; > > >GENERAL_NAME *v2i_GENERAL_NAME(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, > CONF_VALUE *cnf); >GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, X509V3_EXT_METHOD *method, > X509V3_CTX *ctx, CONF_VALUE *cnf, int is_nc); >void X509V3_conf_free(CONF_VALUE *val); > >X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, char *value); >X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name, char *value); >int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, char *section, STACK **sk); >int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509 *cert); >int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_REQ *req); >int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_CRL *crl); > >X509_EXTENSION *X509V3_EXT_conf_nid(LHASH *conf, X509V3_CTX *ctx, int ext_nid, char *value); >X509_EXTENSION *X509V3_EXT_conf(LHASH *conf, X509V3_CTX *ctx, char *name, char *value); >int X509V3_EXT_add_conf(LHASH *conf, X509V3_CTX *ctx, char *section, X509 *cert); >int X509V3_EXT_REQ_add_conf(LHASH *conf, X509V3_CTX *ctx, char *section, X509_REQ *req); >int X509V3_EXT_CRL_add_conf(LHASH *conf, X509V3_CTX *ctx, char *section, X509_CRL *crl); > >int X509V3_add_value_bool_nf(char *name, int asn1_bool, > STACK **extlist); >int X509V3_get_value_bool(CONF_VALUE *value, int *asn1_bool); >int X509V3_get_value_int(CONF_VALUE *value, ASN1_INTEGER **aint); >void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); >void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH *lhash); > > >char * X509V3_get_string(X509V3_CTX *ctx, char *name, char *section); >STACK * X509V3_get_section(X509V3_CTX *ctx, char *section); >void X509V3_string_free(X509V3_CTX *ctx, char *str); >void X509V3_section_free( X509V3_CTX *ctx, STACK *section); >void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, > X509_REQ *req, X509_CRL *crl, int flags); > >int X509V3_add_value(const char *name, const char *value, > STACK **extlist); >int X509V3_add_value_uchar(const char *name, const unsigned char *value, > STACK **extlist); >int X509V3_add_value_bool(const char *name, int asn1_bool, > STACK **extlist); >int X509V3_add_value_int(const char *name, ASN1_INTEGER *aint, > STACK **extlist); >char * i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint); >ASN1_INTEGER * s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, char *value); >char * i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint); >char * i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint); >int X509V3_EXT_add(X509V3_EXT_METHOD *ext); >int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); >int X509V3_EXT_add_alias(int nid_to, int nid_from); >void X509V3_EXT_cleanup(void); > >X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); >X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); >int X509V3_add_standard_extensions(void); >STACK *X509V3_parse_list(const char *line); >void *X509V3_EXT_d2i(X509_EXTENSION *ext); >void *X509V3_get_d2i(STACK *x, int nid, int *crit, int *idx); > > >X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); >int X509V3_add1_i2d(STACK **x, int nid, void *value, int crit, unsigned long flags); > >char *hex_to_string(unsigned char *buffer, long len); >unsigned char *string_to_hex(char *str, long *len); >int name_cmp(const char *name, const char *cmp); > >void X509V3_EXT_val_prn(BIO *out, STACK *val, int indent, > int ml); >int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent); >int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); > >int X509V3_extensions_print(BIO *out, char *title, STACK *exts, unsigned long flag, int indent); > >int X509_check_ca(X509 *x); >int X509_check_purpose(X509 *x, int id, int ca); >int X509_supported_extension(X509_EXTENSION *ex); >int X509_PURPOSE_set(int *p, int purpose); >int X509_check_issued(X509 *issuer, X509 *subject); >int X509_PURPOSE_get_count(void); >X509_PURPOSE * X509_PURPOSE_get0(int idx); >int X509_PURPOSE_get_by_sname(char *sname); >int X509_PURPOSE_get_by_id(int id); >int X509_PURPOSE_add(int id, int trust, int flags, > int (*ck)(const X509_PURPOSE *, const X509 *, int), > char *name, char *sname, void *arg); >char *X509_PURPOSE_get0_name(X509_PURPOSE *xp); >char *X509_PURPOSE_get0_sname(X509_PURPOSE *xp); >int X509_PURPOSE_get_trust(X509_PURPOSE *xp); >void X509_PURPOSE_cleanup(void); >int X509_PURPOSE_get_id(X509_PURPOSE *); > >STACK *X509_get1_email(X509 *x); >STACK *X509_REQ_get1_email(X509_REQ *x); >void X509_email_free(STACK *sk); > >ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); >ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); >int a2i_ipadd(unsigned char *ipout, const char *ipasc); >int X509V3_NAME_from_section(X509_NAME *nm, STACK*dn_sk, > unsigned long chtype); > >void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); > > > >typedef struct ASRange_st { > ASN1_INTEGER *min, *max; >} ASRange; > > > > >typedef struct ASIdOrRange_st { > int type; > union { > ASN1_INTEGER *id; > ASRange *range; > } u; >} ASIdOrRange; > >typedef STACK ASIdOrRanges; > > > > > >typedef struct ASIdentifierChoice_st { > int type; > union { > ASN1_NULL *inherit; > ASIdOrRanges *asIdsOrRanges; > } u; >} ASIdentifierChoice; > >typedef struct ASIdentifiers_st { > ASIdentifierChoice *asnum, *rdi; >} ASIdentifiers; > >ASRange *ASRange_new(void); void ASRange_free(ASRange *a); ASRange *d2i_ASRange(ASRange **a, const unsigned char **in, long len); int i2d_ASRange(ASRange *a, unsigned char **out); extern const ASN1_ITEM ASRange_it; >ASIdOrRange *ASIdOrRange_new(void); void ASIdOrRange_free(ASIdOrRange *a); ASIdOrRange *d2i_ASIdOrRange(ASIdOrRange **a, const unsigned char **in, long len); int i2d_ASIdOrRange(ASIdOrRange *a, unsigned char **out); extern const ASN1_ITEM ASIdOrRange_it; >ASIdentifierChoice *ASIdentifierChoice_new(void); void ASIdentifierChoice_free(ASIdentifierChoice *a); ASIdentifierChoice *d2i_ASIdentifierChoice(ASIdentifierChoice **a, const unsigned char **in, long len); int i2d_ASIdentifierChoice(ASIdentifierChoice *a, unsigned char **out); extern const ASN1_ITEM ASIdentifierChoice_it; >ASIdentifiers *ASIdentifiers_new(void); void ASIdentifiers_free(ASIdentifiers *a); ASIdentifiers *d2i_ASIdentifiers(ASIdentifiers **a, const unsigned char **in, long len); int i2d_ASIdentifiers(ASIdentifiers *a, unsigned char **out); extern const ASN1_ITEM ASIdentifiers_it; > > >typedef struct IPAddressRange_st { > ASN1_BIT_STRING *min, *max; >} IPAddressRange; > > > > >typedef struct IPAddressOrRange_st { > int type; > union { > ASN1_BIT_STRING *addressPrefix; > IPAddressRange *addressRange; > } u; >} IPAddressOrRange; > >typedef STACK IPAddressOrRanges; > > > > > >typedef struct IPAddressChoice_st { > int type; > union { > ASN1_NULL *inherit; > IPAddressOrRanges *addressesOrRanges; > } u; >} IPAddressChoice; > >typedef struct IPAddressFamily_st { > ASN1_OCTET_STRING *addressFamily; > IPAddressChoice *ipAddressChoice; >} IPAddressFamily; > >typedef STACK IPAddrBlocks; > > >IPAddressRange *IPAddressRange_new(void); void IPAddressRange_free(IPAddressRange *a); IPAddressRange *d2i_IPAddressRange(IPAddressRange **a, const unsigned char **in, long len); int i2d_IPAddressRange(IPAddressRange *a, unsigned char **out); extern const ASN1_ITEM IPAddressRange_it; >IPAddressOrRange *IPAddressOrRange_new(void); void IPAddressOrRange_free(IPAddressOrRange *a); IPAddressOrRange *d2i_IPAddressOrRange(IPAddressOrRange **a, const unsigned char **in, long len); int i2d_IPAddressOrRange(IPAddressOrRange *a, unsigned char **out); extern const ASN1_ITEM IPAddressOrRange_it; >IPAddressChoice *IPAddressChoice_new(void); void IPAddressChoice_free(IPAddressChoice *a); IPAddressChoice *d2i_IPAddressChoice(IPAddressChoice **a, const unsigned char **in, long len); int i2d_IPAddressChoice(IPAddressChoice *a, unsigned char **out); extern const ASN1_ITEM IPAddressChoice_it; >IPAddressFamily *IPAddressFamily_new(void); void IPAddressFamily_free(IPAddressFamily *a); IPAddressFamily *d2i_IPAddressFamily(IPAddressFamily **a, const unsigned char **in, long len); int i2d_IPAddressFamily(IPAddressFamily *a, unsigned char **out); extern const ASN1_ITEM IPAddressFamily_it; ># 732 "/usr/include/openssl/x509v3.h" 3 4 >int v3_asid_add_inherit(ASIdentifiers *asid, int which); >int v3_asid_add_id_or_range(ASIdentifiers *asid, int which, > ASN1_INTEGER *min, ASN1_INTEGER *max); >int v3_addr_add_inherit(IPAddrBlocks *addr, > const unsigned afi, const unsigned *safi); >int v3_addr_add_prefix(IPAddrBlocks *addr, > const unsigned afi, const unsigned *safi, > unsigned char *a, const int prefixlen); >int v3_addr_add_range(IPAddrBlocks *addr, > const unsigned afi, const unsigned *safi, > unsigned char *min, unsigned char *max); >unsigned v3_addr_get_afi(const IPAddressFamily *f); >int v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, > unsigned char *min, unsigned char *max, > const int length); > > > > >int v3_asid_is_canonical(ASIdentifiers *asid); >int v3_addr_is_canonical(IPAddrBlocks *addr); >int v3_asid_canonize(ASIdentifiers *asid); >int v3_addr_canonize(IPAddrBlocks *addr); > > > > >int v3_asid_inherits(ASIdentifiers *asid); >int v3_addr_inherits(IPAddrBlocks *addr); >int v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); >int v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); > > > > >int v3_asid_validate_path(X509_STORE_CTX *); >int v3_addr_validate_path(X509_STORE_CTX *); >int v3_asid_validate_resource_set(STACK *chain, > ASIdentifiers *ext, > int allow_inheritance); >int v3_addr_validate_resource_set(STACK *chain, > IPAddrBlocks *ext, > int allow_inheritance); > > > > > > > >void ERR_load_X509V3_strings(void); ># 917 "/usr/include/openssl/x509v3.h" 3 4 >} ># 617 "../condor_includes/stdsoap2.h" 2 ># 649 "../condor_includes/stdsoap2.h" >extern "C" { ># 696 "../condor_includes/stdsoap2.h" ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 697 "../condor_includes/stdsoap2.h" 2 ># 896 "../condor_includes/stdsoap2.h" >extern const struct soap_double_nan { unsigned int n1, n2; } soap_double_nan; ># 1057 "../condor_includes/stdsoap2.h" >typedef int32_t soap_mode; ># 1227 "../condor_includes/stdsoap2.h" >typedef int32_t soap_wchar; > > >struct Namespace >{ const char *id; > const char *ns; > const char *in; > char *out; >}; > > >struct soap_nlist >{ struct soap_nlist *next; > unsigned int level; > short index; > char *ns; > char id[1]; >}; > > >struct soap_blist >{ struct soap_blist *next; > char *ptr; > size_t size; >}; > > >struct soap_array >{ void *__ptr; > int __size; >}; > > >struct soap_plist >{ struct soap_plist *next; > const void *ptr; > const struct soap_array *array; > int type; > int id; > char mark1; > char mark2; >}; > > >struct soap_pblk >{ struct soap_pblk *next; > struct soap_plist plist[(32)]; >}; ># 1288 "../condor_includes/stdsoap2.h" >struct soap_clist >{ struct soap_clist *next; > void *ptr; > int type; > int size; > int (*fdelete)(struct soap_clist*); >}; > > >struct soap_attribute >{ struct soap_attribute *next; > char *value; > size_t size; > char *ns; > short visible; > char name[1]; >}; > > >struct soap_cookie >{ struct soap_cookie *next; > char *name; > char *value; > char *domain; > char *path; > time_t expire; > long maxage; > unsigned int version; > short secure; > short session; > short env; > short modified; >}; > > > > struct soap_multipart* soap_next_multipart(struct soap_multipart*); > >class soap_multipart_iterator >{ public: > struct soap_multipart *content; > bool operator==(const soap_multipart_iterator& iter) const > { return content == iter.content; } > bool operator!=(const soap_multipart_iterator& iter) const > { return content != iter.content; } > struct soap_multipart &operator*() const > { return *content; } > soap_multipart_iterator &operator++() > { content = soap_next_multipart(content); return *this; } > soap_multipart_iterator() : content(__null) > { } > soap_multipart_iterator(struct soap_multipart *p) : content(p) > { } >}; > > > >struct soap_dime >{ size_t count; > size_t size; > size_t chunksize; > size_t buflen; > char flags; > char *ptr; > const char *id; > const char *type; > const char *options; > struct soap_multipart *list; > struct soap_multipart *first, *last; > > soap_multipart_iterator begin() > { soap_multipart_iterator iter(list); return iter; }; > soap_multipart_iterator end() > { soap_multipart_iterator iter(__null); return iter; }; > >}; > > > >struct soap_mime >{ char *boundary; > const char *start; > struct soap_multipart *list; > struct soap_multipart *first, *last; > > soap_multipart_iterator begin() > { soap_multipart_iterator iter(list); return iter; }; > soap_multipart_iterator end() > { soap_multipart_iterator iter(__null); return iter; }; > >}; > > > > >enum soap_mime_encoding >{ SOAP_MIME_NONE, > SOAP_MIME_7BIT, > SOAP_MIME_8BIT, > SOAP_MIME_BINARY, > SOAP_MIME_QUOTED_PRINTABLE, > SOAP_MIME_BASE64, > SOAP_MIME_IETF_TOKEN, > SOAP_MIME_X_TOKEN >}; > > > > >struct soap_multipart >{ struct soap_multipart *next; > char *ptr; > size_t size; > const char *id; > const char *type; > const char *options; > enum soap_mime_encoding encoding; > const char *location; > const char *description; > > typedef soap_multipart_iterator iterator; > >}; > > > > >struct soap_xlist >{ struct soap_xlist *next; > unsigned char **ptr; > int *size; > char *id; > char **type; > char **options; >}; > > > > > > >class soap_dom_attribute_iterator >{ public: > struct soap_dom_attribute *att; > const char *nstr; > const char *name; > bool operator==(const soap_dom_attribute_iterator&) const; > bool operator!=(const soap_dom_attribute_iterator&) const; > struct soap_dom_attribute &operator*() const; > soap_dom_attribute_iterator &operator++(); > soap_dom_attribute_iterator(); > soap_dom_attribute_iterator(struct soap_dom_attribute*); > ~soap_dom_attribute_iterator(); >}; > > > > >struct soap_dom_attribute >{ struct soap_dom_attribute *next; > const char *nstr; > char *name; > char *data; > wchar_t *wide; > struct soap *soap; > > typedef soap_dom_attribute_iterator iterator; > struct soap_dom_attribute &set(const char *nstr, const char *name); > struct soap_dom_attribute &set(const char *data); > soap_dom_attribute_iterator begin(); > soap_dom_attribute_iterator end(); > soap_dom_attribute_iterator find(const char *nstr, const char *name); > void unlink(); > soap_dom_attribute(); > soap_dom_attribute(struct soap *soap); > soap_dom_attribute(struct soap *soap, const char *nstr, const char *name, const char *data); > ~soap_dom_attribute(); > >}; > > > > >class soap_dom_element_iterator >{ public: > struct soap_dom_element *elt; > const char *nstr; > const char *name; > int type; > bool operator==(const soap_dom_element_iterator&) const; > bool operator!=(const soap_dom_element_iterator&) const; > struct soap_dom_element &operator*() const; > soap_dom_element_iterator &operator++(); > soap_dom_element_iterator(); > soap_dom_element_iterator(struct soap_dom_element*); > ~soap_dom_element_iterator(); >}; > > > > >struct soap_dom_element >{ struct soap_dom_element *next; > struct soap_dom_element *prnt; > struct soap_dom_element *elts; > struct soap_dom_attribute *atts; > const char *nstr; > char *name; > char *data; > wchar_t *wide; > int type; > void *node; > char *head; > char *tail; > struct soap *soap; > > typedef soap_dom_element_iterator iterator; > struct soap_dom_element &set(const char *nstr, const char *name); > struct soap_dom_element &set(const char *data); > struct soap_dom_element &set(void *node, int type); > struct soap_dom_element &add(struct soap_dom_element*); > struct soap_dom_element &add(struct soap_dom_element&); > struct soap_dom_element &add(struct soap_dom_attribute*); > struct soap_dom_element &add(struct soap_dom_attribute&); > soap_dom_element_iterator begin(); > soap_dom_element_iterator end(); > soap_dom_element_iterator find(const char *nstr, const char *name); > soap_dom_element_iterator find(int type); > void unlink(); > soap_dom_element(); > soap_dom_element(struct soap *soap); > soap_dom_element(struct soap *soap, const char *nstr, const char *name); > soap_dom_element(struct soap *soap, const char *nstr, const char *name, const char *data); > soap_dom_element(struct soap *soap, const char *nstr, const char *name, void *node, int type); > ~soap_dom_element(); > >}; > struct soap_dom_element * soap_dom_next_element(struct soap_dom_element *elt); > struct soap_dom_attribute * soap_dom_next_attribute(struct soap_dom_attribute *att); > > > >} >extern std::ostream &operator<<(std::ostream&, const struct soap_dom_element&); >extern std::istream &operator>>(std::istream&, struct soap_dom_element&); >extern "C" { ># 1548 "../condor_includes/stdsoap2.h" >struct soap >{ short state; > short version; > soap_mode mode; > soap_mode imode; > soap_mode omode; > const char *float_format; > const char *double_format; > const char *dime_id_format; > const char *http_version; > const char *http_content; > const char *encodingStyle; > const char *actor; > int recv_timeout; > int send_timeout; > int connect_timeout; > int accept_timeout; > int socket_flags; > int connect_flags; > int bind_flags; > int accept_flags; > const struct Namespace *namespaces; > struct Namespace *local_namespaces; > struct soap_nlist *nlist; > struct soap_blist *blist; > struct soap_clist *clist; > void *alist; > struct soap_ilist *iht[(1999)]; > struct soap_plist *pht[(1024)]; > struct soap_pblk *pblk; > short pidx; > struct SOAP_ENV__Header *header; > struct SOAP_ENV__Fault *fault; > int idnum; > void *user; > struct soap_plugin *plugins; > char *userid; > char *passwd; > int (*fpost)(struct soap*, const char*, const char*, int, const char*, const char*, size_t); > int (*fget)(struct soap*); > int (*fput)(struct soap*); > int (*fdel)(struct soap*); > int (*fhead)(struct soap*); > int (*fform)(struct soap*); > int (*fposthdr)(struct soap*, const char*, const char*); > int (*fresponse)(struct soap*, int, size_t); > int (*fparse)(struct soap*); > int (*fparsehdr)(struct soap*, const char*, const char*); > int (*fheader)(struct soap*); > int (*fresolve)(struct soap*, const char*, struct in_addr* inaddr); > int (*fconnect)(struct soap*, const char*, const char*, int); > int (*fdisconnect)(struct soap*); > int (*fclosesocket)(struct soap*, int); > int (*fshutdownsocket)(struct soap*, int, int); > int (*fopen)(struct soap*, const char*, const char*, int); > int (*faccept)(struct soap*, int, struct sockaddr*, int *n); > int (*fclose)(struct soap*); > int (*fsend)(struct soap*, const char*, size_t); > size_t (*frecv)(struct soap*, char*, size_t); > int (*fpoll)(struct soap*); > void (*fseterror)(struct soap*, const char **c, const char **s); > int (*fignore)(struct soap*, const char*); > int (*fserveloop)(struct soap*); > void *(*fplugin)(struct soap*, const char*); > void *(*fmalloc)(struct soap*, size_t); > > int (*fprepareinit)(struct soap*); > int (*fpreparesend)(struct soap*, const char*, size_t); > int (*fpreparerecv)(struct soap*, const char*, size_t); > int (*fpreparefinal)(struct soap*); > void *(*fdimereadopen)(struct soap*, void*, const char*, const char*, const char*); > void *(*fdimewriteopen)(struct soap*, const char*, const char*, const char*); > void (*fdimereadclose)(struct soap*, void*); > void (*fdimewriteclose)(struct soap*, void*); > size_t (*fdimeread)(struct soap*, void*, char*, size_t); > int (*fdimewrite)(struct soap*, void*, const char*, size_t); > void *(*fmimereadopen)(struct soap*, void*, const char*, const char*, const char*); > void *(*fmimewriteopen)(struct soap*, void*, const char*, const char*, const char*, enum soap_mime_encoding); > void (*fmimereadclose)(struct soap*, void*); > void (*fmimewriteclose)(struct soap*, void*); > size_t (*fmimeread)(struct soap*, void*, char*, size_t); > int (*fmimewrite)(struct soap*, void*, const char*, size_t); > > int master; > int socket; > > std::ostream *os; > std::istream *is; > > > > > > int sendfd; > int recvfd; > > > > > size_t bufidx; > size_t buflen; > soap_wchar ahead; > short cdata; > short body; > unsigned int level; > size_t count; > size_t length; > char *labbuf; > size_t lablen; > size_t labidx; > char buf[(65536)]; > char msgbuf[1024]; > char tmpbuf[1024]; > char tag[(1024)]; > char id[(1024)]; > char href[(1024)]; > char type[(1024)]; > char arrayType[(1024)]; > char arraySize[(1024)]; > char arrayOffset[(1024)]; > short other; > short position; > int positions[(16)]; > short root; > struct soap_attribute *attributes; > short encoding; > short mustUnderstand; > short null; > short ns; > short part; > short alloced; > short peeked; > size_t chunksize; > size_t chunkbuflen; > char endpoint[(1024)]; > char path[(1024)]; > char host[(1024)]; > char *action; > char *authrealm; > char *prolog; > unsigned long ip; > int port; > short keep_alive; > short tcp_keep_alive; > unsigned int tcp_keep_idle; > unsigned int tcp_keep_intvl; > unsigned int tcp_keep_cnt; > unsigned int max_keep_alive; > const char *proxy_http_version; > const char *proxy_host; > int proxy_port; > const char *proxy_userid; > const char *proxy_passwd; > const char *proxy_from; > int status; > int error; > int errmode; > int errnum; > > struct soap_dom_element *dom; > struct soap_dime dime; > struct soap_mime mime; > struct soap_xlist *xlist; > > > const char *logfile[(3)]; > FILE *fdebug[(3)]; > struct soap_mlist *mht[(1024)]; > > > const char *c14ninclude; > const char *c14nexclude; > struct soap_cookie *cookies; > const char *cookie_domain; > const char *cookie_path; > int cookie_max; > > > > > > struct sockaddr_in peer; > > > size_t peerlen; > > int (*fsslauth)(struct soap*); > int (*fsslverify)(int, X509_STORE_CTX*); > BIO *bio; > SSL *ssl; > SSL_CTX *ctx; > SSL_SESSION *session; ># 1748 "../condor_includes/stdsoap2.h" > unsigned short ssl_flags; > const char *keyfile; > const char *password; > const char *dhfile; > const char *cafile; > const char *capath; > const char *crlfile; > const char *randfile; > char session_host[(1024)]; > int session_port; > > > > > void *d_stream; > int32_t z_crc; > > short zlib_state; > short zlib_in; > short zlib_out; > char *z_buf; > size_t z_buflen; > unsigned short z_level; > float z_ratio_in; > float z_ratio_out; > > > > > soap(); > soap(soap_mode); > soap(soap_mode, soap_mode); > soap(struct soap&); > virtual ~soap(); > >}; > >struct soap_code_map >{ long code; > const char *string; >}; > > >struct soap_flist >{ struct soap_flist *next; > int type; > void *ptr; > unsigned int level; > size_t len; > void (*fcopy)(struct soap*, int, int, void*, size_t, const void*, size_t); >}; > > >struct soap_ilist >{ struct soap_ilist *next; > int type; > size_t size; > void *link; > void *copy; > struct soap_flist *flist; > void *ptr; > unsigned int level; > char id[1]; >}; > >struct soap_plugin >{ struct soap_plugin *next; > const char *id; > void *data; > int (*fcopy)(struct soap *soap, struct soap_plugin *dst, struct soap_plugin *src); > void (*fdelete)(struct soap *soap, struct soap_plugin *p); >}; > > >extern struct Namespace namespaces[]; ># 1849 "../condor_includes/stdsoap2.h" > char* soap_strrchr(const char *s, int t); > > > > > > long soap_strtol(const char *s, char **t, int b); > > > > > > unsigned long soap_strtoul(const char *s, char **t, int b); > > > > > int soap_rand(void); ># 1891 "../condor_includes/stdsoap2.h" > void soap_header(struct soap*); > void soap_fault(struct soap*); > const char** soap_faultcode(struct soap*); > const char** soap_faultsubcode(struct soap*); > const char** soap_faultstring(struct soap*); > const char** soap_faultdetail(struct soap*); > void soap_serializeheader(struct soap*); > int soap_putheader(struct soap*); > int soap_getheader(struct soap*); > void soap_serializefault(struct soap*); > int soap_putfault(struct soap*); > int soap_getfault(struct soap*); > > void soap_ssl_init(); > int soap_poll(struct soap*); > int soap_connect_command(struct soap*, int, const char*, const char*); > int soap_connect(struct soap*, const char*, const char*); > int soap_bind(struct soap*, const char*, int, int); > int soap_accept(struct soap*); > int soap_ssl_accept(struct soap*); > const char * soap_ssl_error(struct soap*, int); > > int soap_ssl_server_context(struct soap*, unsigned short, const char*, const char*, const char*, const char*, const char*, const char*, const char*); > int soap_ssl_client_context(struct soap*, unsigned short, const char*, const char*, const char*, const char*, const char*); > > int soap_puthttphdr(struct soap*, int status, size_t count); > > const char* soap_get_header_attribute(struct soap*, const char*, const char*); > const char* soap_decode_key(char*, size_t, const char*); > const char* soap_decode_val(char*, size_t, const char*); > > size_t soap_hash(const char*); > void soap_set_endpoint(struct soap*, const char*); > int soap_flush_raw(struct soap*, const char*, size_t); > int soap_flush(struct soap*); > soap_wchar soap_get(struct soap*); > soap_wchar soap_getchar(struct soap*); > int soap_tag_cmp(const char*, const char*); > void soap_set_fault(struct soap*); > int soap_sender_fault(struct soap*, const char*, const char*); > int soap_sender_fault_subcode(struct soap*, const char*, const char*, const char*); > int soap_receiver_fault(struct soap*, const char*, const char*); > int soap_receiver_fault_subcode(struct soap*, const char*, const char*, const char*); > int soap_set_sender_error(struct soap*, const char*, const char*, int); > int soap_set_receiver_error(struct soap*, const char*, const char*, int); > > int soap_send_raw(struct soap*, const char*, size_t); > int soap_recv_raw(struct soap*); > int soap_recv(struct soap*); > int soap_send(struct soap*, const char*); > int soap_send2(struct soap*, const char*, const char*); > int soap_send3(struct soap*, const char*, const char*, const char*); > > int soap_pututf8(struct soap*, unsigned long); > soap_wchar soap_getutf8(struct soap*); > > int soap_putbase64(struct soap*, const unsigned char*, int); > unsigned char* soap_getbase64(struct soap*, int*, int); > int soap_puthex(struct soap*, const unsigned char*, int); > unsigned char* soap_gethex(struct soap*, int*); > > > int soap_xop_forward(struct soap*, unsigned char**, int*, char**, char**, char**); > int soap_dime_forward(struct soap*, unsigned char**, int*, char**, char**, char**); > > > > int soap_pointer_lookup_id(struct soap*, void *p, int t, struct soap_plist**); > int soap_pointer_lookup(struct soap*, const void *p, int t, struct soap_plist**); > int soap_pointer_enter(struct soap*, const void *p, const struct soap_array *a, int n, int t, struct soap_plist**); > int soap_array_pointer_lookup(struct soap*, const void *p, const struct soap_array *a, int n, int t, struct soap_plist**); > int soap_embed(struct soap *soap, const void *p, const struct soap_array *a, int n, const char *tag, int type); > struct soap_ilist* soap_lookup(struct soap*, const char*); > struct soap_ilist* soap_enter(struct soap*, const char*); > int soap_resolve(struct soap*); > void soap_embedded(struct soap*, const void *p, int t); > int soap_reference(struct soap*, const void *p, int t); > int soap_array_reference(struct soap*, const void *p, const struct soap_array *a, int n, int t); > int soap_embedded_id(struct soap*, int id, const void *p, int t); > int soap_is_embedded(struct soap*, struct soap_plist*); > int soap_is_single(struct soap*, struct soap_plist*); > void soap_set_embedded(struct soap*, struct soap_plist*); > > > int soap_begin_count(struct soap*); > int soap_end_count(struct soap*); > int soap_begin_send(struct soap*); > int soap_end_send(struct soap*); > > const struct soap_code_map* soap_code(const struct soap_code_map*, const char*); > long soap_code_int(const struct soap_code_map*, const char*, long); > const char* soap_code_str(const struct soap_code_map*, long); > long soap_code_bits(const struct soap_code_map*, const char*); > const char* soap_code_list(struct soap*, const struct soap_code_map*, long); > > int soap_getline(struct soap*, char*, int); > int soap_begin_recv(struct soap*); > int soap_end_recv(struct soap*); > > void* soap_malloc(struct soap*, size_t); > void soap_dealloc(struct soap*, void*); > struct soap_clist * soap_link(struct soap*, void*, int, int, int (*fdelete)(struct soap_clist*)); > void soap_unlink(struct soap*, const void*); > void soap_free_temp(struct soap*); > void soap_del(struct soap*); > > void* soap_track_malloc(struct soap*, const char*, int, size_t); > void soap_track_free(struct soap*, const char*, int, void*); > > > int soap_lookup_type(struct soap*, const char *id); > void* soap_id_lookup(struct soap*, const char *id, void **p, int t, size_t n, unsigned int k); > void* soap_id_forward(struct soap*, const char *id, void *p, size_t len, int st, int tt, size_t n, unsigned int k, void(*fcopy)(struct soap*, int, int, void*, size_t, const void*, size_t)); > > void* soap_id_enter(struct soap*, const char *id, void *p, int t, size_t n, unsigned int k, const char *type, const char *arrayType, void *(*finstantiate)(struct soap*, int, const char*, const char*, size_t*)); > void soap_fcopy(struct soap *soap, int st, int tt, void *p, size_t, const void *q, size_t n); > > int soap_size(const int *, int); > int soap_getoffsets(const char *, const int *, int *, int); > int soap_getsize(const char *, const char *, int *); > int soap_getsizes(const char *, int *, int); > int soap_getposition(const char *, int *); > > char* soap_putsize(struct soap*, const char *, int); > char* soap_putsizesoffsets(struct soap*, const char *, const int *, const int *, int); > char* soap_putsizes(struct soap*, const char *, const int *, int); > char* soap_putoffset(struct soap*, int); > char* soap_putoffsets(struct soap*, const int *, int); > > int soap_closesock(struct soap*); > > struct soap * soap_new(void); > struct soap * soap_new1(soap_mode); > struct soap * soap_new2(soap_mode, soap_mode); > void soap_free(struct soap*); > struct soap * soap_copy(const struct soap*); > struct soap * soap_copy_context(struct soap*, const struct soap*); > void soap_copy_stream(struct soap*, struct soap*); > void soap_init(struct soap*); > void soap_init1(struct soap*, soap_mode); > void soap_init2(struct soap*, soap_mode, soap_mode); > void soap_done(struct soap*); > void soap_cleanup(struct soap*); > void soap_begin(struct soap*); > void soap_end(struct soap*); > void soap_delete(struct soap*, void*); ># 2046 "../condor_includes/stdsoap2.h" > const char* soap_value(struct soap*); > > int soap_match_tag(struct soap*, const char*, const char *); > int soap_match_array(struct soap*, const char*); > > int soap_element(struct soap*, const char*, int, const char*); > int soap_element_begin_out(struct soap*, const char *tag, int id, const char *type); > int soap_array_begin_out(struct soap*, const char *tag, int id, const char *type, const char *offset); > int soap_element_ref(struct soap*, const char *tag, int id, int href); > int soap_element_href(struct soap*, const char *tag, int id, const char *ref, const char *val); > int soap_element_null(struct soap*, const char *tag, int id, const char *type); > int soap_element_id(struct soap*, const char *tag, int id, const void *p, const struct soap_array *a, int d, const char *type, int n); > int soap_element_result(struct soap*, const char *tag); > void soap_check_result(struct soap*, const char *tag); > int soap_element_end_out(struct soap*, const char *tag); > int soap_element_start_end_out(struct soap*, const char *tag); > > int soap_attribute(struct soap*, const char*, const char*); > > int soap_element_begin_in(struct soap*, const char *tag, int nillable, const char *type); > > int soap_element_end_in(struct soap*, const char *tag); > > int soap_peek_element(struct soap*); > > void soap_retry(struct soap*); > void soap_revert(struct soap*); > > char* soap_strdup(struct soap*, const char*); > wchar_t* soap_wstrdup(struct soap*, const wchar_t*); > const char * soap_strsearch(const char *big, const char *little); > > int soap_string_out(struct soap*, const char *s, int flag); > char* soap_string_in(struct soap*, int, long, long); > > > int soap_wstring_out(struct soap*, const wchar_t *s, int flag); > wchar_t* soap_wstring_in(struct soap*, int, long, long); > > > int soap_match_namespace(struct soap*, const char *, const char*, size_t n1, size_t n2); > > int soap_set_namespaces(struct soap*, const struct Namespace*); > void soap_set_local_namespaces(struct soap*); > > void soap_pop_namespace(struct soap*); > int soap_push_namespace(struct soap*, const char *,const char *); > const char* soap_current_namespace(struct soap *soap, const char *tag); > > struct soap_nlist* soap_lookup_ns(struct soap *soap, const char *tag, size_t n); > > int soap_store_lab(struct soap*, const char*, size_t); > int soap_append_lab(struct soap*, const char*, size_t); > > int soap_new_block(struct soap*); > void* soap_push_block(struct soap*, size_t); > void soap_pop_block(struct soap*); > size_t soap_size_block(struct soap*, size_t); > char* soap_first_block(struct soap*); > char* soap_next_block(struct soap*); > size_t soap_block_size(struct soap*); > char* soap_save_block(struct soap*, char*, int); > void soap_end_block(struct soap*); > > int soap_envelope_begin_out(struct soap*); > int soap_envelope_end_out(struct soap*); > > int soap_envelope_begin_in(struct soap*); > int soap_envelope_end_in(struct soap*); > > int soap_body_begin_out(struct soap*); > int soap_body_end_out(struct soap*); > > int soap_body_begin_in(struct soap*); > int soap_body_end_in(struct soap*); > > int soap_recv_header(struct soap*); > > int soap_response(struct soap*, int); > > int soap_send_empty_response(struct soap*, int status); > int soap_recv_empty_response(struct soap*); > > int soap_send_fault(struct soap*); > int soap_recv_fault(struct soap*); > > > void soap_print_fault(struct soap*, FILE*); > void soap_print_fault_location(struct soap*, FILE*); > > > void soap_stream_fault(struct soap*, std::ostream&); > > char* soap_sprint_fault(struct soap*, char*, size_t); > > > > int soap_s2byte(struct soap*, const char*, char*); > int soap_s2short(struct soap*, const char*, short*); > int soap_s2int(struct soap*, const char*, int*); > int soap_s2long(struct soap*, const char*, long*); > int soap_s2LONG64(struct soap*, const char*, long long*); > int soap_s2float(struct soap*, const char*, float*); > int soap_s2double(struct soap*, const char*, double*); > int soap_s2unsignedByte(struct soap*, const char*, unsigned char*); > int soap_s2unsignedShort(struct soap*, const char*, unsigned short*); > int soap_s2unsignedInt(struct soap*, const char*, unsigned int*); > int soap_s2unsignedLong(struct soap*, const char*, unsigned long*); > int soap_s2ULONG64(struct soap*, const char*, unsigned long long*); > int soap_s2string(struct soap*, const char*, char**); > int soap_s2QName(struct soap*, const char*, char**); > > > int soap_s2wchar(struct soap*, const char*, wchar_t**); > int soap_s2dateTime(struct soap*, const char*, time_t*); > char* soap_s2base64(struct soap*, const unsigned char*, char*, int); > char* soap_s2hex(struct soap*, const unsigned char*, char*, int); > > > const char* soap_byte2s(struct soap*, char); > const char* soap_short2s(struct soap*, short); > const char* soap_int2s(struct soap*, int); > const char* soap_long2s(struct soap*, long); > const char* soap_LONG642s(struct soap*, long long); > const char* soap_float2s(struct soap*, float); > const char* soap_double2s(struct soap*, double); > const char* soap_unsignedByte2s(struct soap*, unsigned char); > const char* soap_unsignedShort2s(struct soap*, unsigned short); > const char* soap_unsignedInt2s(struct soap*, unsigned int); > const char* soap_unsignedLong2s(struct soap*, unsigned long); > const char* soap_ULONG642s(struct soap*, unsigned long long); > const char* soap_QName2s(struct soap*, const char*); > > > const char* soap_wchar2s(struct soap*, const wchar_t*); > const char* soap_dateTime2s(struct soap*, time_t); > const char* soap_base642s(struct soap*, const char*, char*, size_t, int*); > const char* soap_hex2s(struct soap*, const char*, char*, size_t, int*); > > > > int* soap_inint(struct soap*, const char *tag, int *p, const char *, int); > char* soap_inbyte(struct soap*, const char *tag, char *p, const char *, int); > long* soap_inlong(struct soap*, const char *tag, long *p, const char *, int); > long long* soap_inLONG64(struct soap*, const char *tag, long long *p, const char *, int); > short* soap_inshort(struct soap*, const char *tag, short *p, const char *, int); > float* soap_infloat(struct soap*, const char *tag, float *p, const char *, int); > double* soap_indouble(struct soap*, const char *tag, double *p, const char *, int); > unsigned char* soap_inunsignedByte(struct soap*, const char *tag, unsigned char *p, const char *, int); > unsigned short* soap_inunsignedShort(struct soap*, const char *tag, unsigned short *p, const char *, int); > unsigned int* soap_inunsignedInt(struct soap*, const char *tag, unsigned int *p, const char *, int); > unsigned long* soap_inunsignedLong(struct soap*, const char *tag, unsigned long *p, const char *, int); > unsigned long long* soap_inULONG64(struct soap*, const char *tag, unsigned long long *p, const char *, int); > char** soap_instring(struct soap*, const char *tag, char **p, const char *, int, int, long, long); > char** soap_inliteral(struct soap*, const char *tag, char **p); > > > time_t* soap_indateTime(struct soap*, const char *tag, time_t *p, const char *, int); > time_t soap_timegm(struct tm*); > > > > wchar_t** soap_inwstring(struct soap*, const char *tag, wchar_t **p, const char *, int, long, long); > wchar_t** soap_inwliteral(struct soap*, const char *tag, wchar_t **p); > > > int soap_outbyte(struct soap*, const char *tag, int id, const char *p, const char *, int); > int soap_outshort(struct soap*, const char *tag, int id, const short *p, const char *, int); > int soap_outint(struct soap*, const char *tag, int id, const int *p, const char *, int); > int soap_outlong(struct soap*, const char *tag, int id, const long *p, const char *, int); > int soap_outLONG64(struct soap*, const char *tag, int id, const long long *p, const char *, int); > int soap_outfloat(struct soap*, const char *tag, int id, const float *p, const char *, int); > int soap_outdouble(struct soap*, const char *tag, int id, const double *p, const char *, int); > int soap_outunsignedByte(struct soap*, const char *tag, int id, const unsigned char *p, const char *, int); > int soap_outunsignedShort(struct soap*, const char *tag, int id, const unsigned short *p, const char *, int); > int soap_outunsignedInt(struct soap*, const char *tag, int id, const unsigned int *p, const char *, int); > int soap_outunsignedLong(struct soap*, const char *tag, int id, const unsigned long *p, const char *, int); > int soap_outULONG64(struct soap*, const char *tag, int id, const unsigned long long *p, const char *, int); > int soap_outstring(struct soap*, const char *tag, int id, char *const*p, const char *, int); > int soap_outliteral(struct soap*, const char *tag, char *const*p, const char *type); > > > int soap_outdateTime(struct soap*, const char *tag, int id, const time_t *p, const char *, int); > > > > int soap_outwstring(struct soap*, const char *tag, int id, wchar_t *const*p, const char *, int); > int soap_outwliteral(struct soap*, const char *tag, wchar_t *const*p, const char *type); > > > > int soap_attachment(struct soap *, const char*, int, const void*, const struct soap_array*, const char*, const char*, const char*, int, const char*, int); > int soap_move(struct soap*, long); > size_t soap_tell(struct soap*); > char* soap_dime_option(struct soap*, unsigned short, const char*); > int soap_getdimehdr(struct soap*); > int soap_getdime(struct soap*); > int soap_putdimehdr(struct soap*); > int soap_putdime(struct soap*); > int soap_getmimehdr(struct soap*); > int soap_getmime(struct soap*); > int soap_putmimehdr(struct soap*, struct soap_multipart*); > int soap_putmime(struct soap*); > void soap_set_dime(struct soap*); > void soap_set_mime(struct soap*, const char *boundary, const char *start); > void soap_clr_dime(struct soap*); > void soap_clr_mime(struct soap*); > int soap_set_dime_attachment(struct soap*, char *ptr, size_t size, const char *type, const char *id, unsigned short optype, const char *option); > int soap_set_mime_attachment(struct soap*, char *ptr, size_t size, enum soap_mime_encoding encoding, const char *type, const char *id, const char *location, const char *description); > void soap_post_check_mime_attachments(struct soap *soap); > int soap_check_mime_attachments(struct soap *soap); > struct soap_multipart* soap_get_mime_attachment(struct soap *soap, void *handle); > struct soap_multipart* soap_next_multipart(struct soap_multipart*); > int soap_match_cid(struct soap*, const char*, const char*); > > > int soap_register_plugin_arg(struct soap*, int (*fcreate)(struct soap*, struct soap_plugin*, void*), void*); > void* soap_lookup_plugin(struct soap*, const char*); > > const char* soap_attr_value(struct soap *soap, const char *name, int flag); > int soap_set_attr(struct soap *soap, const char *name, const char *value); > void soap_clr_attr(struct soap *soap); ># 2287 "../condor_includes/stdsoap2.h" >} ># 30 "daemon_core.C" 2 ># 1 "soap_core.h" 1 ># 20 "soap_core.h" ># 1 "condor_timer_manager.h" 1 ># 33 "condor_timer_manager.h" ># 1 "../condor_includes/condor_constants.h" 1 ># 34 "condor_timer_manager.h" 2 ># 1 "../condor_c++_util/dc_service.h" 1 ># 48 "../condor_c++_util/dc_service.h" >class Service { > public: ># 63 "../condor_c++_util/dc_service.h" > virtual ~Service() {} > > > > > > protected: > Service() {} > >}; ># 81 "../condor_c++_util/dc_service.h" >typedef int (*Event)(Service*); > > >typedef int (Service::*Eventcpp)(); ># 104 "../condor_c++_util/dc_service.h" >class ServiceData >{ >public: > virtual ~ServiceData() {}; > >protected: > ServiceData() {} >}; > > > > > > >typedef int (*ServiceDataHandler)(ServiceData*); > >typedef int (*ServiceDataCompare)(ServiceData*, ServiceData*); > >typedef int (Service::*ServiceDataHandlercpp)(ServiceData*); ># 35 "condor_timer_manager.h" 2 > > > > > > > >const int STAR = -1; ># 51 "condor_timer_manager.h" >typedef int (*Event)(Service*); > > >typedef int (Service::*Eventcpp)(); > > > > > > > >const unsigned TIMER_NEVER = 0xffffffff; > >const time_t TIME_T_NEVER = 0x7fffffff; > > > > >struct tagTimer { > time_t when; > unsigned period; > int id; > Event handler; > Eventcpp handlercpp; > class Service* service; > struct tagTimer* next; > int is_cpp; > char* event_descrip; > void* data_ptr; >}; > > >typedef struct tagTimer Timer; > > > > >class TimerManager >{ > public: > > > TimerManager(); > > ~TimerManager(); ># 104 "condor_timer_manager.h" > int NewTimer(Service* s, > unsigned deltawhen, > Event event, > char * event_descrip, > unsigned period = 0, > int id = -1); ># 119 "condor_timer_manager.h" > int NewTimer(unsigned deltawhen, > Event event, > char * event_descrip, > unsigned period = 0, > int id = -1); ># 132 "condor_timer_manager.h" > int NewTimer (Service* s, > unsigned deltawhen, > Eventcpp event, > char * event_descrip, > unsigned period = 0, > int id = -1); > > > > > > int CancelTimer(int id); > > > > > > > > int ResetTimer(int tid, unsigned when, unsigned period = 0); > > > void CancelAllTimers(); > > > void DumpTimerList(int, char* = __null ); > > > > > int Timeout(); > > > void Start(); > > private: > > int NewTimer (Service* s, > unsigned deltawhen, > Event event, > Eventcpp eventcpp, > char * event_descrip, > unsigned period = 0, > int id = -1, > int is_cpp = 0); > > Timer* timer_list; > int timer_ids; > int in_timeout; > int did_reset; >}; ># 21 "soap_core.h" 2 ># 1 "../condor_includes/condor_io.h" 1 ># 25 "../condor_includes/condor_io.h" ># 1 "../condor_includes/stream.h" 1 ># 26 "../condor_includes/stream.h" ># 1 "../condor_includes/condor_crypt.h" 1 ># 26 "../condor_includes/condor_crypt.h" ># 1 "../condor_includes/CryptKey.h" 1 ># 24 "../condor_includes/CryptKey.h" >enum Protocol { > CONDOR_NO_PROTOCOL, > CONDOR_BLOWFISH, > CONDOR_3DES >}; > >class KeyInfo { > public: > KeyInfo(); > > > > > KeyInfo(unsigned char * keyData, > int keyDataLen, > Protocol protocol = CONDOR_NO_PROTOCOL, > int duration = 0); > > > > > KeyInfo(const KeyInfo& copy); > > > > > KeyInfo& operator=(const KeyInfo& copy); > > ~KeyInfo(); > > const unsigned char * getKeyData() const; > > > > > > > int getKeyLength() const; > > > > > > > Protocol getProtocol() const; > > > > > > > int getDuration() const; ># 87 "../condor_includes/CryptKey.h" > unsigned char * getPaddedKeyData(int len) const; > > private: > void init(unsigned char * keyData, int keyDataLen); > > unsigned char * keyData_; > int keyDataLen_; > int keyBufferLen_; > Protocol protocol_; > int duration_; >}; ># 27 "../condor_includes/condor_crypt.h" 2 > >class Condor_Crypt_Base { > > public: > Condor_Crypt_Base(Protocol, const KeyInfo& key); > > > > > > > virtual ~Condor_Crypt_Base(); > > > > > > > static unsigned char * randomKey(int length = 24); > static unsigned char * oneWayHashKey(const char * initialKey); ># 56 "../condor_includes/condor_crypt.h" > Protocol protocol(); > > > > > > > const KeyInfo& get_key() { return keyInfo_; } > > virtual void resetState() = 0; > > > > > > > > virtual bool encrypt(unsigned char * input, > int input_len, > unsigned char *& output, > int& output_len) = 0; > > virtual bool decrypt(unsigned char * input, > int input_len, > unsigned char *& output, > int& output_len) = 0; > > protected: > static int encryptedSize(int inputLength, int blockSize = 8); ># 95 "../condor_includes/condor_crypt.h" > protected: > Condor_Crypt_Base(); > > > > private: > KeyInfo keyInfo_; >}; ># 27 "../condor_includes/stream.h" 2 > > > > > >enum CONDOR_MD_MODE { > MD_OFF = 0, > MD_ALWAYS_ON, > MD_EXPLICIT >}; > >const int CLEAR_HEADER = 0; >const int MD_IS_ON = 1; >const int ENCRYPTION_IS_ON = 2; > >const condor_mode_t NULL_FILE_PERMISSIONS = (condor_mode_t)0; > ># 1 "../h/proc.h" 1 ># 24 "../h/proc.h" ># 1 "../condor_includes/condor_universe.h" 1 ># 26 "../condor_includes/condor_universe.h" >extern "C" { ># 53 "../condor_includes/condor_universe.h" >const char *CondorUniverseName( int universe ); >const char *CondorUniverseNameUcFirst( int universe ); > > > >int CondorUniverseNumber( const char* univ ); > >BOOLEAN universeCanReconnect( int universe ); > >} ># 25 "../h/proc.h" 2 ># 1 "../condor_includes/condor_header_features.h" 1 ># 26 "../h/proc.h" 2 > > ># 1 "../condor_c++_util/MyString.h" 1 ># 22 "../condor_c++_util/MyString.h" ># 1 "../condor_c++_util/simplelist.h" 1 ># 30 "../condor_c++_util/simplelist.h" >template <class ObjType> class SimpleListIterator; > >template <class ObjType> >class SimpleList >{ > friend class SimpleListIterator<ObjType>; > public: > > SimpleList (); > > > SimpleList (const SimpleList<ObjType> & list); > > virtual inline ~SimpleList () { delete [] items; } > > > virtual bool Append (const ObjType &); > virtual bool Prepend (const ObjType &); > inline bool IsEmpty() const { return (size == 0); } > inline int Number(void) const { return size; } > inline int Length(void) const { return Number(); } > inline void Clear(void) { size = 0; Rewind(); } > > > > inline void Rewind() { current = -1; } > bool Current(ObjType &) const; > bool Next(ObjType &); > bool Next(ObjType *&); > inline bool AtEnd() const { return (current >= size-1); } > virtual void DeleteCurrent(); > virtual bool Delete(const ObjType &, bool delete_all = false); > bool ReplaceCurrent(const ObjType &); > bool IsMember( const ObjType & ) const; > > protected: > virtual bool resize (int); > int maximum_size; > ObjType *items; > int size; > int current; >}; > >template <class ObjType> >SimpleList<ObjType>:: >SimpleList (): maximum_size(1), size(0) >{ > items = new ObjType[maximum_size]; > Rewind(); >} > >template <class ObjType> >SimpleList<ObjType>:: >SimpleList (const SimpleList<ObjType> & list): > maximum_size(list.maximum_size), size(list.size), current(list.current) >{ > items = new ObjType[maximum_size]; > memcpy (items, list.items, sizeof (ObjType *) * maximum_size); >} > >template <class ObjType> >bool SimpleList<ObjType>:: >Append (const ObjType &item) >{ > if (size >= maximum_size) > { > if (!resize (2*maximum_size)) > return false; > } > > items[size++] = item; > return true; >} > >template <class ObjType> >bool SimpleList<ObjType>:: >Prepend (const ObjType &item) >{ > int i=0; > > if (size >= maximum_size) > { > if (!resize (2*maximum_size)) > return false; > } > > > for (i=size;i>0;i--) { > items[i]=items[i-1]; > } > items[0] = item; > size++; > return true; >} > > >template <class ObjType> >bool SimpleList<ObjType>:: >Current (ObjType &item) const >{ > if (items && current < size && current >= 0) { > item = items [current]; > return true; > } > return false; >} > >template <class ObjType> >bool SimpleList<ObjType>:: >Next (ObjType &item) >{ > if (current >= size - 1) return false; > item = items [++current]; > return true; >} > >template <class ObjType> >bool SimpleList<ObjType>:: >Next (ObjType *&item) >{ > if (current >= size - 1) return false; > item = &items[++current]; > return true; >} > > >template <class ObjType> >void SimpleList<ObjType>:: >DeleteCurrent () >{ > if (current >= size || current < 0) > return; > > for (int i = current; i < size - 1; i++) > items [i] = items [i+1]; > > current--; > size--; >} > >template <class ObjType> >bool SimpleList<ObjType>:: >Delete (const ObjType &item, bool delete_all) >{ > bool found_it = false; > > for ( int i = 0; i < size; i++ ) { > if ( items[i] == item ) { > found_it = true; > for ( int j = i; j < size - 1; j++ ) { > items[j] = items[j+1]; > } > size--; > if ( current >= i ) { > current--; > } > if ( delete_all == false ) { > return true; > } > i--; > } > } > > return found_it; >} > >template <class ObjType> >bool SimpleList<ObjType>:: >ReplaceCurrent (const ObjType &item) >{ > if (items && current < size && current >= 0) { > items [current] = item; > return true; > } > return false; >} > > >template <class ObjType> >bool SimpleList<ObjType>:: >resize (int newsize) >{ > ObjType *buf; > int i; > int smaller; > > buf = new ObjType [newsize]; > if (!buf) return false; > > smaller = (newsize < size) ? newsize : size; > for (i = 0; i < smaller; i++) > buf[i] = items[i]; > > delete [] items; > items = buf; > > > maximum_size = newsize; > if (size > maximum_size - 1) > size = maximum_size - 1; > > > if (current > maximum_size - 1) > current = maximum_size; > > return true; >} > >template <class ObjType> >bool SimpleList<ObjType>:: >IsMember( const ObjType& obj ) const >{ > int i; > for( i = 0; i < size; i++ ) { > if( items[i] == obj ) { > return true; > } > } > return false; >} > > > > > >template <class ObjType> >class SimpleListIterator { > public: > SimpleListIterator( ): _list(__null), _cur(-1) {} > SimpleListIterator( const SimpleList<ObjType> & list ) { Initialize (list); } > ~SimpleListIterator( ) {} > > void Initialize( const SimpleList<ObjType> & ); > inline void ToBeforeFirst () { _cur = -1; } > inline void ToAfterLast () { _cur = -2; } > bool Next( ObjType& ); > bool Next( ObjType*& ); > bool Current( ObjType& ) const; > bool Prev( ObjType& ); > > inline bool IsBeforeFirst () const { return (_cur == -1); } > inline bool IsAfterLast () const { return (_cur == -2); } > > private: > const SimpleList<ObjType>* _list; > int _cur; >}; > > > > > >template <class ObjType> >void >SimpleListIterator<ObjType>::Initialize( const SimpleList<ObjType> & list ) >{ > _list = & list; > ToBeforeFirst(); >} > >template <class ObjType> >bool >SimpleListIterator<ObjType>::Next( ObjType& obj) >{ > if (_list == __null || IsAfterLast()) return false; > if (_cur >= _list->size - 1) { > ToAfterLast(); > return false; > } > obj = _list->items[++_cur]; > return true; >} > >template <class ObjType> >bool >SimpleListIterator<ObjType>::Next( ObjType*& obj) >{ > if (_list == __null || IsAfterLast()) return false; > if (_cur >= _list->size - 1) { > ToAfterLast(); > return false; > } > obj = &_list->items[++_cur]; > return true; >} > > >template <class ObjType> >bool >SimpleListIterator<ObjType>::Current( ObjType& obj ) const >{ > if (_list != __null && _cur >= 0 && _cur < _list->size) { > obj = _list->items[_cur]; > return true; > } > return false; >} > >template <class ObjType> >bool >SimpleListIterator<ObjType>::Prev( ObjType& obj ) >{ > if (_list == __null || _cur == -1) return false; > if (_cur == -2) _cur = _list->size - 1; > else _cur--; > > if (_cur == -1) return false; > obj = _list->items[_cur]; > return true; >} ># 23 "../condor_c++_util/MyString.h" 2 ># 37 "../condor_c++_util/MyString.h" >class MyString >{ > > public: ># 49 "../condor_c++_util/MyString.h" > MyString(); > > > > MyString(int i); > > > MyString(const char* S); > > > MyString(const MyString& S); > > > ~MyString(); ># 72 "../condor_c++_util/MyString.h" > int Length() const { return Len; } > > > bool IsEmpty() const { return (Len == 0); } > > > int Capacity() const { return capacity; } > > > const char *GetCStr() const { return Data; } > > > > > const char *Value() const { return (Data ? Data : ""); } > > > > char operator[](int pos) const; > > > > const char& operator[](int pos); > > > > > void setChar(int pos, char value); > > > > void randomlyGenerate(const char *set, int len); > > > > void randomlyGenerateHex(int len); ># 118 "../condor_c++_util/MyString.h" > MyString& operator=(const MyString& S); > > > MyString& operator=( const char *s ); ># 133 "../condor_c++_util/MyString.h" > bool reserve(const int sz); > > > > > > > > bool reserve_at_least(const int sz); ># 151 "../condor_c++_util/MyString.h" > MyString& operator+=(const MyString& S); > > > MyString& operator+=(const char *s); > > > > > > > MyString& operator+=(const char ); > > > MyString& operator+=(int i); > > > MyString& operator+=(unsigned int ui); > > > MyString& operator+=(long l); > > > MyString& operator+=(double d); > > > > friend MyString operator+(const MyString &S1, const MyString &S2); ># 190 "../condor_c++_util/MyString.h" > MyString Substr(int pos1, int pos2) const; > > > > > > > MyString EscapeChars(const MyString& Q, const char escape) const; > > > > > int FindChar(int Char, int FirstPos=0) const; > > > unsigned int Hash() const; > > > > > int find(const char *pszToFind, int iStartPos = 0) const; > > > > > > bool replaceString(const char *pszToReplace, > const char *pszReplaceWith, > int iStartFromPos=0); > > > > > > > bool sprintf(const char *format, ...) __attribute__((__format__(__printf__, 2, 3))); > > > > > > bool vsprintf(const char *format, va_list args); > > > bool sprintf_cat(const char *format, ...) __attribute__((__format__(__printf__, 2, 3))); > > > bool vsprintf_cat(const char *format, va_list args); > > > void append_to_list(char const *str,char const *delim=","); > > > void append_to_list(MyString const &str,char const *delim=","); > > void lower_case(void); > void upper_case(void); > void strlwr( void ); > void strupr( void ); > > > > > > bool chomp( void ); > > > > void trim( void ); ># 268 "../condor_c++_util/MyString.h" > friend int operator==(const MyString& S1, const MyString& S2); > > > > friend int operator==(const MyString& S1, const char *S2); > > > friend int operator!=(const MyString& S1, const MyString& S2); > > > > friend int operator!=(const MyString& S1, const char *S2); > > > > friend int operator< (const MyString& S1, const MyString& S2); > > > > friend int operator<=(const MyString& S1, const MyString& S2); > > > > friend int operator> (const MyString& S1, const MyString& S2); > > > > friend int operator>=(const MyString& S1, const MyString& S2); ># 314 "../condor_c++_util/MyString.h" > bool readLine( FILE* fp, bool append = false); ># 323 "../condor_c++_util/MyString.h" > void Tokenize(); ># 332 "../condor_c++_util/MyString.h" > const char *GetNextToken(const char *delim, bool skipBlankTokens); > > >private: > > void init(); > > char* Data; > char dummy; > > > int Len; > int capacity; > > char *tokenBuf; > char *nextToken; > >}; > >unsigned int MyStringHash( const MyString &str ); > > > > > >class YourSensitiveString { >public: > YourSensitiveString() : m_str(0) {} > YourSensitiveString(char const *str) { > m_str = str; > } > bool operator ==(const YourSensitiveString &rhs) { > return strcmp(m_str,rhs.m_str) == 0; > } > void operator =(char const *str) { > m_str = str; > } > static unsigned int hashFunction(const YourSensitiveString &s) { > > > unsigned int hash = 0; > > const char *p = s.m_str; > while (*p) { > hash = (hash<<5)+hash + (unsigned char)*p; > p++; > } > > return hash; > } > > >private: > char const *m_str; >}; ># 29 "../h/proc.h" 2 ># 1 "../condor_c++_util/extArray.h" 1 ># 23 "../condor_c++_util/extArray.h" ># 1 "../condor_includes/condor_debug.h" 1 ># 83 "../condor_includes/condor_debug.h" >extern "C" { > > >extern int DebugFlags; >extern int Termlog; >extern int (*DebugId)(FILE *); > >void dprintf ( int flags, const char *fmt, ... ) __attribute__((__format__(__printf__, 2, 3))); > >void dprintf_config( char *subsys ); >void _condor_dprintf_va ( int flags, const char* fmt, va_list args ); >int _condor_open_lock_file(const char *filename,int flags, mode_t perm); >void _EXCEPT_ ( const char *fmt, ... ) __attribute__((__format__(__printf__, 1, 2))); >void Suicide(void); >void set_debug_flags( char *strflags ); >void _condor_fd_panic( int line, char *file ); >void _condor_set_debug_flags( char *strflags ); > > >void dprintf_before_shared_mem_clone( void ); > > >void dprintf_after_shared_mem_clone( void ); > > >void dprintf_init_fork_child( void ); > > > > > >void dprintf_wrapup_fork_child( void ); > >time_t dprintf_last_modification(void); >void dprintf_touch_log(void); ># 137 "../condor_includes/condor_debug.h" >extern int _EXCEPT_Line; >extern char *_EXCEPT_File; >extern int _EXCEPT_Errno; >extern int (*_EXCEPT_Cleanup)(int,int,char*); >extern void _EXCEPT_(const char*, ...) __attribute__((__format__(__printf__, 1, 2))); > > >} ># 24 "../condor_c++_util/extArray.h" 2 > >template <class Element> >class ExtArray >{ > public: > > > ExtArray (int = 64); > ExtArray (const ExtArray &); > ~ExtArray (); > > > Element operator[] (int) const; > Element &operator[] (int); > > > > int getsize (void) const; > > int getlast (void) const; > > int length (void) const; > > Element *getarray (void); > void resize (int); > void truncate (int); > void fill (Element); > void setFiller( Element ); > > > Element set( int, Element ); > Element add( Element ); > Element& getElementAt( int ); > > private: > > Element *array; > int size; > int last; > Element filler; >}; > > >template <class Element> >ExtArray<Element>:: >ExtArray (int sz) >{ > > size = sz; > last = -1; > array = new Element[size]; > if (!array) > { > dprintf ((1<<0), "ExtArray: Out of memory"); > exit (1); > } >} > >template <class Element> >ExtArray<Element>:: >ExtArray (const ExtArray &old) >{ > int i; > > > if (&old == this) return; > > > size = old.size; > last = old.last; > array = new Element[size]; > if (!array) > { > dprintf ((1<<0), "ExtArray: Out of memory"); > exit (1); > } > > > for (i = 0; i < size; i++) > { > array[i] = old.array[i]; > } > > > filler = old.filler; >} > > >template <class Element> >ExtArray<Element>:: >~ExtArray () >{ > delete [] array; >} > > >template <class Element> >inline Element ExtArray<Element>:: >operator[] (int i) const >{ > > if (i < 0) > { > i = 0; > } > else if (i > last) > { > return filler; > } > > > return array[i]; >} > > >template <class Element> >inline Element& ExtArray<Element>:: >operator[] (int i) >{ > > if (i < 0) > { > i = 0; > } > else > if (i >= size) > { > resize (2*i); > } > > > if( i > last ) last = i; > return array[i]; >} > > > > > > >template <class Element> >Element ExtArray<Element>:: >set( int idx, Element elt ) >{ > > > > > > > if ( idx < 0 ) { > idx = 0; > > > > > } else if ( idx >= this->size ) { > int newSize = idx * 2 + 2; > this->resize( newSize ); > } > > > > > if ( idx > this->last ) { > this->last = idx; > } > > > > > Element orig = this->array[idx]; > this->array[idx] = elt; > return ( orig ); >} > > > > > > >template <class Element> >Element ExtArray<Element>:: >add( Element elt ) >{ > > > > > > return ( this->set( this->last + 1, elt ) ); >} > > > > > >template <class Element> >inline Element& ExtArray<Element>:: >getElementAt( int idx ) >{ > > > > if ( idx < 0 ) { > idx = 0; > } else if ( idx >= size ) { > idx = size; > } > return ( array[idx] ); >} > >template <class Element> >inline int ExtArray<Element>:: >getsize (void) const >{ > return size; >} > >template <class Element> >inline int ExtArray<Element>:: >length (void) const >{ > > return this->getlast() + 1; >} > > >template <class Element> >inline int ExtArray<Element>:: >getlast (void) const >{ > return last; >} > >template <class Element> >inline Element *ExtArray<Element>:: >getarray (void) >{ > return array; >} > > >template <class Element> >void ExtArray<Element>:: >resize (int newsz) { > Element *newarray = new Element[newsz]; > int index = (size < newsz) ? size : newsz; > int i; > > > if (!newarray) > { > dprintf ((1<<0), "ExtArray: Out of memory"); > exit (1); > } > > > > for (i=index;i<newsz;i++) > { > newarray[i] = filler; > } > > > while (--index >= 0) > { > newarray[index] = array[index]; > } > > > delete [] array; > size = newsz; > array = newarray; >} > > >template <class Element> >void ExtArray<Element>:: >truncate (int newlast) >{ > last = newlast; >} > > >template <class Element> >void ExtArray<Element>:: >fill (Element elt) >{ > int i; > for (i = 0; i < size; i++) > array[i] = elt; > filler = elt; >} > >template <class Element> >void ExtArray<Element>:: >setFiller( Element elt ) >{ > filler = elt; >} ># 30 "../h/proc.h" 2 ># 39 "../h/proc.h" >typedef struct { > int cluster; > int proc; >} PROC_ID; > >typedef struct { > int writer; > int reader; > char *name; >} P_DESC; > > > > > >typedef struct { > int version_num; > PROC_ID id; > int universe; > int checkpoint; > int remote_syscalls; > char *owner; > int q_date; > int completion_date; > int status; > int prio; > int notification; > int image_size; > char *env_v1or2; > > > > > > int n_cmds; > char **cmd; > char **args_v1or2; > char **in; > char **out; > char **err; > struct rusage *remote_usage; > int *exit_status; > > > > > > int n_pipes; > P_DESC *pipe; > > > > > int min_needed; > int max_needed; > > char *rootdir; > char *iwd; > char *requirements; > char *preferences; > struct rusage local_usage; > char pad[66]; > >} PROC; > > > > > > > >typedef struct { > int version_num; > PROC_ID id; > char *owner; > int q_date; > int completion_date; > int status; > int prio; > int notification; > int image_size; > char *cmd; > char *args_v1or2; > char *env_v1or2; > char *in; > char *out; > char *err; > char *rootdir; > char *iwd; > char *requirements; > char *preferences; > struct rusage local_usage; > struct rusage remote_usage; > >} V2_PROC; > > > > > > >typedef PROC V3_PROC; >typedef union { > V2_PROC v2_proc; > V3_PROC v3_proc; >} GENERIC_PROC; > > > > >typedef struct { > PROC_ID id; > char *owner; > int q_date; > int status; > int prio; > int notification; > char *cmd; > char *args_v1or2; > char *env_v1or2; > char *in; > char *out; > char *err; > char *rootdir; > char *iwd; > char *requirements; > char *preferences; > struct rusage local_usage; > struct rusage remote_usage; >} OLD_PROC; ># 180 "../h/proc.h" >typedef struct { > int n_ids; > int array_len; > int next_id; > int id[1]; >} CLUSTER_LIST; ># 205 "../h/proc.h" >extern "C" { > >PROC_ID getProcByString( const char* str ); >const char* getJobStatusString( int status ); >int getJobStatusNum( const char* name ); > >} > > > >bool operator==( const PROC_ID a, const PROC_ID b); >unsigned int hashFuncPROC_ID( const PROC_ID & ); >void procids_to_mystring(ExtArray<PROC_ID> *procids, MyString &str); >ExtArray<PROC_ID>* mystring_to_procids(MyString &str); > > >void ProcIdToStr(const PROC_ID a, char *result); >void ProcIdToStr(int cluster, int proc, char *result); >bool StrToProcId(char const *str, PROC_ID &id); >bool StrToProcId(char const *str, int &cluster, int &proc); ># 45 "../condor_includes/stream.h" 2 ># 1 "../condor_includes/condor_old_shadow_types.h" 1 ># 25 "../condor_includes/condor_old_shadow_types.h" >typedef struct { > int port1; > int port2; >} PORTS; > > >typedef struct { > int version_num; > PORTS ports; > int ip_addr; > char* server_name; >} StartdRec; ># 46 "../condor_includes/stream.h" 2 > ># 1 "../h/startup.h" 1 ># 23 "../h/startup.h" >typedef struct { > int version_num; > int cluster; > int proc; > int job_class; > > uid_t uid; > gid_t gid; > pid_t virt_pid; > > int soft_kill_sig; > char *cmd; > char *args_v1or2; > char *env_v1or2; > char *iwd; > BOOLEAN ckpt_wanted; > BOOLEAN is_restart; > BOOLEAN coredump_limit_exists; > int coredump_limit; >} STARTUP_INFO; ># 48 "../condor_includes/stream.h" 2 ># 162 "../condor_includes/stream.h" >class Stream { > >public: > > friend class DaemonCore; > > > enum stream_type { > file, > incore, > safe_sock, > reli_sock > }; > > > enum stream_code { > internal, > external, > ascii > }; > > > inline stream_code representation() const { return _code; } > > inline void set_representation(stream_code c) { _code = c; } > > > inline void encode() { _coding = stream_encode; } > > inline void decode() { _coding = stream_decode; } > > inline int is_encode() const { return _coding == stream_encode; } > > inline int is_decode() const { return _coding == stream_decode; } ># 209 "../condor_includes/stream.h" > int code(void *&); > > int code(char &); > > int code(unsigned char &); > > int code(int &); > > int code(unsigned int &); > > int code(long &); > > int code(unsigned long &); > > > int code(int64_t &); > > int code(uint64_t &); > > > int code(short &); > > int code(unsigned short &); > > int code(float &); > > int code(double &); > > int code(char *&); > > int code(char *&, int &); > > int code_bytes(void *, int); > > int code_bytes_bool(void *, int); > > > > > > > > int code(PROC_ID &); > > int code(STARTUP_INFO &); > > int code(PORTS &); > > int code(StartdRec &); > > > > > > > > int code(open_flags_t &); > > int code(struct stat &); > > int code(condor_errno_t &); > > > > int code(condor_signal_t &); > > int code(fcntl_cmd_t &); > > int code(struct rusage &); > > int code(struct statfs &); > > int code(struct timezone &); > > int code(struct timeval &); > > int code(struct utimbuf &); > > int code(struct rlimit &); > > int code_array(gid_t *&array, int &len); > > int code(struct utsname &); > > > int code(condor_mode_t &); ># 310 "../condor_includes/stream.h" > int code(unsigned char *x) { return code(*x); } > > int code(int *x) { return code(*x); } > > int code(unsigned int *x) { return code(*x); } > > int code(long *x) { return code(*x); } > > int code(unsigned long *x) { return code(*x); } > > int code(short *x) { return code(*x); } > > int code(unsigned short *x) { return code(*x); } > > int code(float *x) { return code(*x); } > > int code(double *x) { return code(*x); } > > int code(PROC_ID *x) { return code(*x); } > > int code(STARTUP_INFO *x) { return code(*x); } > > int code(PORTS *x) { return code(*x); } > > int code(StartdRec *x) { return code(*x); } > > > int code(struct stat *x) { return code(*x); } > > int code(open_flags_t *x) { return code(*x); } > > int code(condor_errno_t *x) { return code(*x); } > > > > int code(condor_signal_t *x) { return code(*x); } > > int code(fcntl_cmd_t *x) { return code(*x); } > > int code(struct rusage *x) { return code(*x); } > > int code(struct statfs *x) { return code(*x); } > > int code(struct timezone *x) { return code(*x); } > > int code(struct timeval *x) { return code(*x); } > > int code(struct utimbuf *x) { return code(*x); } > > int code(struct rlimit *x) { return code(*x); } > int code(struct utsname *x) { return code(*x); } ># 376 "../condor_includes/stream.h" > int put(char); > int put(unsigned char); > int put(int); > int put(unsigned int); > int put(long); > int put(unsigned long); > > int put(int64_t); > int put(uint64_t); > > int put(short); > int put(unsigned short); > int put(float); > int put(double); > int put(char const *); > int put(char const *, int); > > > > > > int get(char &); > int get(unsigned char &); > int get(int &); > int get(unsigned int &); > int get(long &); > int get(unsigned long &); > > int get(int64_t &); > int get(uint64_t &); > > int get(short &); > int get(unsigned short &); > int get(float &); > int get(double &); > > > > > int get(char *&); > > > > > > int get(char *, int); > > > > > > int get_string_ptr( char const *&s ); > > > > > > > virtual ~Stream(); ># 445 "../condor_includes/stream.h" > virtual int put_bytes(const void *data, int n) = 0; > > > > > > > virtual int get_bytes(void *data, int maxn) = 0; ># 463 "../condor_includes/stream.h" > virtual int get_ptr(void *& ptr, char d) = 0; > > > > > > virtual int peek(char &c) = 0; > > > > > > > virtual int end_of_message() = 0; > > > > virtual void allow_one_empty_message(); > > > virtual int timeout(int) = 0; > > > virtual int bytes_available_to_read() = 0; > > > virtual time_t connect_timeout_time() = 0; > > > virtual char const *sender_ip_str() = 0; > > > virtual char const *endpoint_ip_str() = 0; > > > > virtual char const *peer_description() = 0; > > > > > virtual stream_type type() = 0; > > > > > virtual Stream *CloneStream() = 0; > > > > > > int snd_int(int val, int end_of_record); > > int rcv_int(int &val, int end_of_record); > > > > > bool set_crypto_key(bool enable, KeyInfo * key, const char * keyId=0); > > > > > > > void set_crypto_mode(bool enable); > > > > > > > bool get_encryption() const; > > > > > > > bool wrap(unsigned char* input, int input_len, > unsigned char*& output, int& outputlen); > > > > > > > > bool unwrap(unsigned char* input, int input_len, > unsigned char*& output, int& outputlen); ># 564 "../condor_includes/stream.h" > bool set_MD_mode(CONDOR_MD_MODE mode, KeyInfo * key = 0, const char * keyid = 0); ># 575 "../condor_includes/stream.h" > bool isOutgoing_MD5_on() const { return (mdMode_ == MD_ALWAYS_ON); } > > > > > > > > virtual const char * isIncomingDataMD5ed() = 0; ># 593 "../condor_includes/stream.h" > private: > bool initialize_crypto(KeyInfo * key); ># 604 "../condor_includes/stream.h" >protected: > > virtual bool init_MD(CONDOR_MD_MODE mode, KeyInfo * key, const char * keyId) = 0; > virtual bool set_encryption_id(const char * keyId) = 0; > const KeyInfo& get_crypto_key() const; > const KeyInfo& get_md_key() const; > > void resetCrypto(); > > > > virtual char * serialize(char *) = 0; > virtual char * serialize() const = 0; > > > > > > enum stream_coding { stream_decode, stream_encode, stream_unknown }; ># 631 "../condor_includes/stream.h" > Stream(stream_code c=external); > > > > > Condor_Crypt_Base * crypto_; > bool crypto_mode_; > CONDOR_MD_MODE mdMode_; > KeyInfo * mdKey_; > bool encrypt_; > stream_code _code; > stream_coding _coding; > > int allow_empty_message_flag; > > char *decrypt_buf; > int decrypt_buf_len; >}; ># 26 "../condor_includes/condor_io.h" 2 ># 1 "../condor_includes/buffers.h" 1 ># 24 "../condor_includes/buffers.h" ># 1 "../condor_includes/sock.h" 1 ># 25 "../condor_includes/sock.h" ># 1 "../condor_includes/condor_socket_types.h" 1 ># 26 "../condor_includes/sock.h" 2 > ># 1 "../condor_c++_util/CondorError.h" 1 ># 24 "../condor_c++_util/CondorError.h" ># 1 "../condor_c++_util/MyString.h" 1 ># 25 "../condor_c++_util/CondorError.h" 2 > ># 1 "../condor_includes/condor_error_codes.h" 1 ># 24 "../condor_includes/condor_error_codes.h" >const int AUTHENTICATE_ERR_NOT_BUILT = 1001; >const int AUTHENTICATE_ERR_HANDSHAKE_FAILED = 1002; >const int AUTHENTICATE_ERR_OUT_OF_METHODS = 1003; >const int AUTHENTICATE_ERR_METHOD_FAILED = 1004; >const int AUTHENTICATE_ERR_KEYEXCHANGE_FAILED = 1005; > >const int SECMAN_ERR_INTERNAL = 2001; >const int SECMAN_ERR_INVALID_POLICY = 2002; >const int SECMAN_ERR_CONNECT_FAILED = 2003; >const int SECMAN_ERR_NO_SESSION = 2004; >const int SECMAN_ERR_ATTRIBUTE_MISSING = 2005; >const int SECMAN_ERR_NO_KEY = 2006; >const int SECMAN_ERR_COMMUNICATIONS_ERROR = 2007; >const int SECMAN_ERR_AUTHENTICATION_FAILED = 2008; > >const int DAEMON_ERR_INTERNAL = 3001; > >const int SCHEDD_ERR_JOB_ACTION_FAILED = 4001; >const int SCHEDD_ERR_SPOOL_FILES_FAILED = 4002; >const int SCHEDD_ERR_UPDATE_GSI_CRED_FAILED = 4003; > >const int GSI_ERR_AQUIRING_SELF_CREDINTIAL_FAILED = 5001; >const int GSI_ERR_REMOTE_SIDE_FAILED = 5002; >const int GSI_ERR_ACQUIRING_SELF_CREDINTIAL_FAILED = 5003; >const int GSI_ERR_AUTHENTICATION_FAILED = 5004; >const int GSI_ERR_COMMUNICATIONS_ERROR = 5005; >const int GSI_ERR_UNAUTHORIZED_SERVER = 5006; >const int GSI_ERR_NO_VALID_PROXY = 5007; > >const int CEDAR_ERR_CONNECT_FAILED = 6001; >const int CEDAR_ERR_EOM_FAILED = 6002; >const int CEDAR_ERR_PUT_FAILED = 6003; >const int CEDAR_ERR_GET_FAILED = 6004; >const int CEDAR_ERR_REGISTER_SOCK_FAILED = 6005; >const int CEDAR_ERR_STARTCOMMAND_FAILED = 6006; > >const int FILETRANSFER_INIT_FAILED = 7001; >const int FILETRANSFER_UPLOAD_FAILED = 7002; ># 27 "../condor_c++_util/CondorError.h" 2 > >class CondorError { > > public: > CondorError(); > ~CondorError(); > CondorError(CondorError&); > CondorError& operator=(CondorError&); > void push( const char* subsys, int code, const char* message ); > void pushf( const char* subsys, int code, const char* format, ... ) __attribute__((__format__(__printf__, 4, 5))); > const char* getFullText( bool want_newline = false ); > char* subsys(int level = 0); > int code(int level = 0); > char* message(int level = 0); > CondorError* next(int level = 0); > > bool pop(); > void clear(); > > private: > void init(); > void deep_copy(CondorError&); > > char* _subsys; > int _code; > char* _message; > CondorError *_next; > >}; ># 28 "../condor_includes/sock.h" 2 ># 1 "../condor_includes/condor_perms.h" 1 ># 33 "../condor_includes/condor_perms.h" >typedef enum { > FIRST_PERM = 0, > ALLOW = 0, > READ = 1, > WRITE = 2, > NEGOTIATOR = 3, > IMMEDIATE_FAMILY = 4, > ADMINISTRATOR = 5, > OWNER = 6, > CONFIG_PERM = 7, > DAEMON = 8, > SOAP_PERM = 9, > DEFAULT_PERM = 10, > CLIENT_PERM = 11, > ADVERTISE_STARTD_PERM = 12, > ADVERTISE_SCHEDD_PERM = 13, > ADVERTISE_MASTER_PERM = 14, > LAST_PERM >} DCpermission; > > > > >extern "C" { > > > > > > >const char* PermString( DCpermission perm ); > >} > > > >class DCpermissionHierarchy { > >private: > DCpermission m_base_perm; > > > > DCpermission m_implied_perms[LAST_PERM+1]; > > > > > > > > DCpermission m_directly_implied_by_perms[LAST_PERM+1]; > > > > DCpermission m_config_perms[LAST_PERM+1]; > >public: > > > > DCpermission const * getImpliedPerms() const { return m_implied_perms; } > > > > > > > > DCpermission const * getPermsIAmDirectlyImpliedBy() const { return m_directly_implied_by_perms; } > > > > DCpermission const * getConfigPerms() const { return m_config_perms; } > > DCpermissionHierarchy(DCpermission perm) { > m_base_perm = perm; > unsigned int i = 0; > > m_implied_perms[i++] = m_base_perm; > > > bool done = false; > while(!done) { > switch( m_implied_perms[i-1] ) { > case DAEMON: > case ADMINISTRATOR: > m_implied_perms[i++] = WRITE; > break; > case WRITE: > case NEGOTIATOR: > case CONFIG_PERM: > m_implied_perms[i++] = READ; > break; > default: > > done = true; > break; > } > } > m_implied_perms[i] = LAST_PERM; > > i=0; > switch(m_base_perm) { > case READ: > m_directly_implied_by_perms[i++] = WRITE; > m_directly_implied_by_perms[i++] = NEGOTIATOR; > m_directly_implied_by_perms[i++] = CONFIG_PERM; > break; > case WRITE: > m_directly_implied_by_perms[i++] = ADMINISTRATOR; > m_directly_implied_by_perms[i++] = DAEMON; > break; > default: > break; > } > m_directly_implied_by_perms[i] = LAST_PERM; > > i=0; > m_config_perms[i++] = m_base_perm; > done = false; > while( !done ) { > switch(m_config_perms[i-1]) { > case DAEMON: > m_config_perms[i++] = WRITE; > break; > case ADVERTISE_STARTD_PERM: > case ADVERTISE_SCHEDD_PERM: > case ADVERTISE_MASTER_PERM: > m_config_perms[i++] = DAEMON; > break; > default: > > done = true; > break; > } > } > m_config_perms[i++] = DEFAULT_PERM; > m_config_perms[i] = LAST_PERM; > } >}; ># 29 "../condor_includes/sock.h" 2 > > > > > >const int CEDAR_EWOULDBLOCK = 666; ># 61 "../condor_includes/sock.h" >typedef void (CedarHandler) (Stream *s); ># 75 "../condor_includes/sock.h" >class Sock : public Stream { > > > >public: > > friend class DaemonCore; > friend class Daemon; > friend class SecMan; > friend class SecManStartCommand; > > > > > > > virtual int handle_incoming_packet() = 0; ># 114 "../condor_includes/sock.h" > virtual int connect(char const *host, int port=0, bool do_not_block = false) = 0; > > > > > > > inline int connect(char const *host, char *service, bool do_not_block = false) { > return connect(host,getportbyserv(service),do_not_block); > } > > > > > int set_async_handler( CedarHandler *handler ); > > > > > > int assign(int =-1); > > > > int bind(bool outbound, int port=0, bool loopback=false); > > bool bind_to_loopback(bool outbound=false, int port=0); > > int setsockopt(int, int, const char*, int); ># 153 "../condor_includes/sock.h" > int set_os_buffers(int desired_size, bool set_write_buf = false); > > static int set_timeout_multiplier(int secs); > static int get_timeout_multiplier() { return timeout_multiplier; } > > inline int bind(bool outbound, char *s) { return bind(outbound, getportbyserv(s)); } > > int close(); ># 169 "../condor_includes/sock.h" > int timeout(int sec); > > > > > int timeout_no_timeout_multiplier(int sec); > > > > > int bytes_available_to_read(); > > > > > > > struct sockaddr_in *endpoint(); > > > int endpoint_port(); > > > const char* endpoint_ip_str(); > > > unsigned int endpoint_ip_int(); > > > > > int mypoint(struct sockaddr_in *sin); > > > virtual const char* sender_ip_str(); > > > int get_port(); > > > unsigned int get_ip_int(); > > > char * get_sinful(); > > > char * get_sinful_peer(); > > > virtual char const *peer_description(); > > > int get_file_desc() { return _sock; } > > > bool is_connect_pending() { return _state == sock_connect_pending || _state == sock_connect_pending_retry; } > > > bool is_connected() { return _state == sock_connect; } > > > virtual ~Sock(); > > > Sock(const Sock &); > > void doNotEnforceMinimalCONNECT_TIMEOUT() ; > > void ignoreTimeoutMultiplier() { ignore_timeout_multiplier = true; } > > > >protected: > > > > > > > > enum sock_state { sock_virgin, sock_assigned, sock_bound, sock_connect, > sock_writemsg, sock_readmsg, sock_special, > sock_connect_pending, sock_connect_pending_retry }; > > > > > > > > Sock(); > > int getportbyserv(char *); ># 278 "../condor_includes/sock.h" > int do_connect(char const *host, int port, bool non_blocking_flag = false); > > inline int get_socket (void) { return _sock; } > char * serialize(char *); > char * serialize() const; > char * serializeCryptoInfo(char * buf); > char * serializeCryptoInfo() const; > char * serializeMdInfo(char * buf); > char * serializeMdInfo() const; > > virtual void setFullyQualifiedUser(char * u); > > virtual const char * getFullyQualifiedUser() const; > > virtual int encrypt(bool); > > virtual int hdr_encrypt(); > > virtual bool is_hdr_encrypt(); > > virtual int authenticate(const char * auth_methods, CondorError* errstack); > > virtual int authenticate(KeyInfo *&ki, const char * auth_methods, CondorError* errstack); > > virtual int isAuthenticated() const; > > virtual void unAuthenticate(); > > virtual bool is_encrypt(); > > > > > inline int set_inheritable( int ) { return TRUE; } > > > > bool test_connection(); > > time_t connect_timeout_time(); > > int move_descriptor_up(); > > > > > > int _sock; > sock_state _state; > int _timeout; > struct sockaddr_in _who; > > static int timeout_multiplier; > > bool ignore_connect_timeout; > > bool ignore_timeout_multiplier; > > > char _sender_ip_buf[IP_STRING_BUF_SIZE]; > >private: > int _condor_read(int fd, char *buf, int sz, int timeout); > int _condor_write(int fd, char *buf, int sz, int timeout); > int bindWithin(const int low, const int high, bool outbound); > > > char _endpoint_ip_buf[IP_STRING_BUF_SIZE]; > > > char _sinful_peer_buf[24]; > > > char _sinful_self_buf[24]; > > > struct connect_state_struct { > int retry_timeout_interval; > bool connect_failed, failed_once; > bool connect_refused; > time_t first_try_start_time; > time_t this_try_timeout_time; > time_t retry_timeout_time; > time_t retry_wait_timeout_time; > int old_timeout_value; > bool non_blocking_flag; > char *host; > int port; > char *connect_failure_reason; > } connect_state; ># 376 "../condor_includes/sock.h" > int do_connect_finish(); ># 388 "../condor_includes/sock.h" > bool do_connect_tryit(); > > > > > > void setConnectFailureReason(char const *reason); > > > > > > void setConnectFailureErrno(int error,char const *syscall); > > > > > > > > void reportConnectionFailure(bool timed_out); > > > > > > void cancel_connect(); > > > > > > > int _bind_helper(int fd, const struct sockaddr* addr, > socklen_t len, bool outbound, bool loopback); > >}; ># 25 "../condor_includes/buffers.h" 2 > >void sanity_check(); > > > > > > > >class Condor_MD_MAC; > >class Buf { > >public: > Buf(int sz=4096); > Buf(Sock* tmp, int sz=4096); > > ~Buf(); > > inline void reset() { _dta_pt = _dta_sz = 0; } > inline void rewind() { _dta_pt = 0; } > > > inline int max_size() const { return _dta_maxsz; } > inline int num_untouched() const { return _dta_sz - _dta_pt; } > inline int num_touched() const { return _dta_pt; } > inline int num_used() const { return _dta_sz; } > inline int num_free() const { return _dta_maxsz - _dta_sz; } > > inline int empty() const { return _dta_sz == 0; } > inline int full() const { return _dta_sz == _dta_maxsz; } > inline int consumed() const { return _dta_pt == _dta_sz; } > > > int write(int sockd, int sz=-1, int timeout=0); > int read(int sockd, int sz=-1, int timeout=0); > > int flush(int sockd, void * hdr=0, int sz=0, int timeout=0); > > int put_max(const void *, int); > int get_max(void *, int); > > int find(char); > int peek(char &); > int seek(int); > > inline Buf *next() const { return _next; } > inline void set_next(Buf *b) { _next = b; } > inline void *get_ptr() const { return &_dta[num_touched()]; } > > > void init_parent(Sock* tmp) { p_sock = tmp;} > > bool computeMD(char * checkSUM, Condor_MD_MAC * checker); > bool verifyMD(char * checkSUM, Condor_MD_MAC * checker); > >private: > > char *_dta; > int _dta_sz; > int _dta_maxsz; > int _dta_pt; > Buf *_next; > Sock *p_sock; > >}; > > > > >class ChainBuf { >public: > ChainBuf() : _head(0), _tail(0), _curr(0),_tmp(0) {} > ~ChainBuf() { reset(); } > > > inline int consumed() { return !_tail || (_tail && _tail->consumed()); } > > int put(Buf *); > void reset(); > > int get(void *, int); > int get_tmp(void *&, char); > > int peek(char &); > >private: > Buf *_head; > Buf *_tail; > Buf *_curr; > char *_tmp; >}; ># 27 "../condor_includes/condor_io.h" 2 > > ># 1 "../condor_includes/reli_sock.h" 1 ># 26 "../condor_includes/reli_sock.h" ># 1 "../condor_includes/condor_adtypes.h" 1 ># 27 "../condor_includes/reli_sock.h" 2 > ># 1 "../condor_includes/../condor_daemon_core.V6/condor_ipverify.h" 1 ># 39 "../condor_includes/../condor_daemon_core.V6/condor_ipverify.h" ># 1 "../condor_includes/condor_debug.h" 1 ># 40 "../condor_includes/../condor_daemon_core.V6/condor_ipverify.h" 2 ># 1 "../condor_c++_util/string_list.h" 1 ># 26 "../condor_c++_util/string_list.h" ># 1 "../condor_c++_util/list.h" 1 ># 115 "../condor_c++_util/list.h" ># 1 "../condor_includes/condor_fix_assert.h" 1 ># 116 "../condor_c++_util/list.h" 2 > >template <class ObjType> class Item; >template <class ObjType> class ListIterator; > >template <class ObjType> >class List { >friend class ListIterator<ObjType>; >public: > > List(); > > virtual ~List(); > bool Append( ObjType & obj ); > bool Append( ObjType * obj ); > > > > > > void Insert( ObjType & obj ); > void Insert( ObjType * obj ); > bool IsEmpty() const; > int Number() const; > int Length() const { return Number(); }; > > > void Rewind(); > bool Current( ObjType & obj ) const; > ObjType *Current() const; > > ObjType * Next (); > bool Next (ObjType & obj); > inline bool Next (ObjType * & obj) { return (obj = Next()) != __null; } > > ObjType * Head ( void ); > bool Head (ObjType & obj); > > bool AtEnd() const; > void DeleteCurrent(); > bool Delete( ObjType *obj ); > > > > > > >protected: > List(const List<ObjType> &toCopy); > List<ObjType> &operator=(const List<ObjType> &toCopy); > > void RemoveItem( Item<ObjType> * ); > Item<ObjType> *dummy; > Item<ObjType> *current; > int num_elem; >}; > >template <class ObjType> >class Item { >friend class List<ObjType>; >friend class ListIterator<ObjType>; >public: > Item( ObjType *obj = 0 ); > ~Item(); >private: > Item<ObjType> *next; > Item<ObjType> *prev; > ObjType *obj; >}; > >template <class ObjType> >class ListIterator { >public: > ListIterator( ); > ListIterator( const List<ObjType>& ); > ~ListIterator( ); > > void Initialize( const List<ObjType>& ); > void ToBeforeFirst( ); > void ToAfterLast( ); > > ObjType * Next (); > bool Next (ObjType & obj); > inline bool Next (ObjType * & obj) { return (obj = Next()) != __null; } > > bool Current( ObjType& ) const; > ObjType* Current( ) const; > bool Prev( ObjType& ); > ObjType* Prev( ); > > bool IsBeforeFirst( ) const; > bool IsAfterLast( ) const; > >private: > const List<ObjType>* list; > Item<ObjType>* cur; >}; ># 224 "../condor_c++_util/list.h" >template <class ObjType> >Item<ObjType>::Item( ObjType *o ) >{ > this->next = this; > this->prev = this; > this->obj = o; > >} > > > > > >template <class ObjType> >Item<ObjType>::~Item() >{ > >} > > > > > > > >template <class ObjType> >List<ObjType>::List() >{ > dummy = new Item<ObjType>( 0 ); > dummy->next = dummy; > dummy->prev = dummy; > current = dummy; > > num_elem = 0; >} > >template <class ObjType> >int >List<ObjType>::Number() const >{ > return num_elem; >} > > > > >template <class ObjType> >bool >List<ObjType>::IsEmpty() const >{ > return dummy->next == dummy; >} > > > > >template <class ObjType> >List<ObjType>::~List() >{ > while( !IsEmpty() ) { > RemoveItem( dummy->next ); > } > delete dummy; > >} > > > > > > >template <class ObjType> >bool >List<ObjType>::Append( ObjType & obj ) >{ > return Append(&obj); >} > > > > > >template <class ObjType> >bool >List<ObjType>::Append( ObjType * obj ) >{ > Item<ObjType> *item; > > > item = new Item<ObjType>( obj ); > if (item == __null) return false; > dummy->prev->next = item; > item->prev = dummy->prev; > dummy->prev = item; > item->next = dummy; > current = item; > num_elem++; > return true; >} > > >template <class ObjType> >void >List<ObjType>::Insert( ObjType& obj ) >{ > Insert(&obj); >} > > >template <class ObjType> >void >List<ObjType>::Insert( ObjType * obj ) >{ > Item<ObjType> *item; > item = new Item<ObjType>( obj ); > current->prev->next = item; > item->prev = current->prev; > current->prev = item; > item->next = current; > num_elem++; >} ># 378 "../condor_c++_util/list.h" >template <class ObjType> >void >List<ObjType>::Rewind() >{ > current = dummy; >} > > > > > > >template <class ObjType> >bool >List<ObjType>::Current( ObjType & answer ) const >{ > if( IsEmpty() ) { > return false; > } > > > if( current == dummy ) { > return false; > } > > answer = (*current->obj); > return true; >} > > > > > > >template <class ObjType> >bool >List<ObjType>::Next( ObjType & answer ) >{ > if( AtEnd() ) { > return false; > } > > current = current->next; > answer = *current->obj; > return true; >} > > > > > >template <class ObjType> >ObjType * >List<ObjType>::Current() const >{ > if( IsEmpty() ) { > return 0; > } > > return current->obj; >} > > > > > >template <class ObjType> >ObjType * >List<ObjType>::Next() >{ > if( AtEnd() ) { > return 0; > } > > current = current->next; > return current->obj; >} > > > > > > > >template <class ObjType> >bool >List<ObjType>::Head( ObjType & answer ) >{ > if( IsEmpty() ) { > return false; > } > answer = *dummy->next->obj; > return true; >} > > > > > > > >template <class ObjType> >ObjType * >List<ObjType>::Head() >{ > if( IsEmpty() ) { > return 0; > } > return dummy->next->obj; >} > > > > > > >template <class ObjType> >bool >List<ObjType>::AtEnd() const >{ > return current->next == dummy; >} > > > > >template <class ObjType> >void >List<ObjType>::RemoveItem( Item<ObjType> * item ) >{ > ((item != dummy) ? static_cast<void> (0) : __assert_fail ("item != dummy", "../condor_c++_util/list.h", 508, __PRETTY_FUNCTION__)); > > item->prev->next = item->next; > item->next->prev = item->prev; > delete item; > num_elem--; >} > > > > > > > >template <class ObjType> >void >List<ObjType>::DeleteCurrent() >{ > ((current != dummy) ? static_cast<void> (0) : __assert_fail ("current != dummy", "../condor_c++_util/list.h", 526, __PRETTY_FUNCTION__)); > current = current->prev; > RemoveItem( current->next ); >} > >template <class ObjType> >bool >List<ObjType>::Delete( ObjType* obj) >{ > Item<ObjType> *tmp = dummy->next; > while( tmp != dummy ) { > if( tmp->obj == obj ) { > if( tmp == current ) { > DeleteCurrent(); > } else { > RemoveItem( tmp ); > } > return true; > } > tmp = tmp->next; > } > return false; >} > >template <class ObjType> >ListIterator<ObjType>::ListIterator( ) >{ > list = __null; > cur = __null; >} > >template <class ObjType> >ListIterator<ObjType>::ListIterator( const List<ObjType>& obj ) >{ > list = &obj; > cur = obj.dummy; >} > >template <class ObjType> >ListIterator<ObjType>::~ListIterator( ) >{ >} > >template <class ObjType> >void >ListIterator<ObjType>::Initialize( const List<ObjType>& obj ) >{ > list = &obj; > cur = list->dummy; >} > >template <class ObjType> >void >ListIterator<ObjType>::ToBeforeFirst( ) >{ > if( list ) cur = list->dummy; >} > >template <class ObjType> >void >ListIterator<ObjType>::ToAfterLast( ) >{ > cur = __null; >} > >template <class ObjType> >bool >ListIterator<ObjType>::Next( ObjType& obj) >{ > ObjType* o = Next(); > if(o == __null) > return false; > obj = *o; > return true; >} > >template <class ObjType> >ObjType* >ListIterator<ObjType>::Next( ) >{ > if( cur ) { > if((cur = cur->next) != __null) { > return( cur->obj ); > } > } > return __null; >} > >template <class ObjType> >bool >ListIterator<ObjType>::Current( ObjType& obj ) const >{ > if( list && cur && cur != list->dummy ) { > obj = *(cur->obj); > return true; > } > return false; >} > >template <class ObjType> >ObjType* >ListIterator<ObjType>::Current( ) const >{ > if( list && cur && cur != list->dummy ) { > return( cur->obj ); > } > return __null; >} > > >template <class ObjType> >bool >ListIterator<ObjType>::Prev( ObjType& obj ) >{ > if( cur == __null ) { > cur = list->dummy; > } > cur = cur->prev; > if( cur != list->dummy ) { > obj = *(cur->obj); > return true; > } > return false; >} > > >template <class ObjType> >ObjType* >ListIterator<ObjType>::Prev( ) >{ > if( cur == __null ) { > cur = list->dummy; > } > cur = cur->prev; > if( cur != list->dummy ) { > return( cur->obj ); > } > return __null; >} > >template <class ObjType> >bool >ListIterator<ObjType>::IsBeforeFirst( ) const >{ > return( list && list->dummy == cur ); >} > >template <class ObjType> >bool >ListIterator<ObjType>::IsAfterLast( ) const >{ > return( list && cur == __null ); >} ># 27 "../condor_c++_util/string_list.h" 2 > > > > >class StringList { >public: > StringList(const char *s = __null, const char *delim = " ," ); > virtual ~StringList(); > void initializeFromString (const char *); > BOOLEAN contains( const char * ); > BOOLEAN substring( const char * ); > BOOLEAN contains_anycase( const char * ); > BOOLEAN contains_withwildcard( const char *str ); > BOOLEAN contains_anycase_withwildcard( const char * ); > const char * string_anycase_withwildcard( const char *); > void print (void); > void rewind (void) { strings.Rewind(); } > void append (const char* str) { strings.Append( strdup(str) ); } > void insert (const char* str) { strings.Insert( strdup(str) ); } > void remove (const char* str); > void clearAll(); > void remove_anycase (const char* str); > char *next (void) { return strings.Next(); } > void deleteCurrent(); > int number (void) const { return strings.Number(); }; > bool isEmpty(void) const { return strings.IsEmpty(); }; ># 61 "../condor_c++_util/string_list.h" > bool create_union(StringList & subset, bool anycase); ># 70 "../condor_c++_util/string_list.h" > bool contains_list(StringList & subset, bool anycase); > > > > > > char* print_to_string(void); > char* print_to_delimed_string(void); > >protected: > const char * contains_withwildcard(const char *string, bool anycase); > List<char> strings; > char *delimiters; > > int isSeparator( char x ); >}; ># 41 "../condor_includes/../condor_daemon_core.V6/condor_ipverify.h" 2 ># 1 "../condor_c++_util/net_string_list.h" 1 ># 25 "../condor_c++_util/net_string_list.h" ># 1 "../condor_c++_util/string_list.h" 1 ># 26 "../condor_c++_util/net_string_list.h" 2 ># 38 "../condor_c++_util/net_string_list.h" >class NetStringList : public StringList { >public: > NetStringList(const char *s = __null, const char *delim = " ," ); > const char * string_withnetwork( const char * ); >}; ># 42 "../condor_includes/../condor_daemon_core.V6/condor_ipverify.h" 2 ># 1 "../condor_c++_util/MyString.h" 1 ># 43 "../condor_includes/../condor_daemon_core.V6/condor_ipverify.h" 2 ># 1 "../condor_includes/condor_perms.h" 1 ># 44 "../condor_includes/../condor_daemon_core.V6/condor_ipverify.h" 2 > >template <class Key, class Value> class HashTable; > > >static const int USERVERIFY_ALLOW = 0; > >static const int USERVERIFY_USE_TABLE = 1; > >static const int USERVERIFY_ONLY_DENIES = 2; > >static const int USERVERIFY_DENY = 3; > > >typedef uint64_t perm_mask_t; > > > > > > >const char* PermString( DCpermission perm ); > >static const int USER_AUTH_FAILURE = 0; >static const int USER_AUTH_SUCCESS = 1; >static const int USER_ID_REQUIRED = 2; > > > >class IpVerify { > >public: > > > IpVerify(); > > > ~IpVerify(); > > > > > > int Init(); ># 95 "../condor_includes/../condor_daemon_core.V6/condor_ipverify.h" > int Verify( DCpermission perm, const struct sockaddr_in *sin, const char * user = __null ); > > > > > > > void CacheDnsResults(int flag) { cache_DNS_results = flag; } > > bool AddAllowHost( const char* host, DCpermission perm ); > > > > > > >private: > > typedef HashTable <MyString, perm_mask_t> UserPerm_t; > > typedef HashTable <MyString, StringList *> UserHash_t; > > > class PermTypeEntry { > public: > int behavior; > NetStringList* allow_hosts; > NetStringList* deny_hosts; > UserHash_t* allow_users; > UserHash_t* deny_users; > PermTypeEntry() { > allow_hosts = __null; > deny_hosts = __null; > allow_users = __null; > deny_users = __null; > behavior = USERVERIFY_USE_TABLE; > } > ~PermTypeEntry(); > }; > > bool has_user(UserPerm_t * , const char *, perm_mask_t & , MyString &); > int add_hash_entry(const struct in_addr & sin_addr, const char * user, perm_mask_t new_mask); > void fill_table( PermTypeEntry * pentry, perm_mask_t mask, char * list, bool allow); > int cache_DNS_results; > void split_entry(const char * entry, char ** host, char ** user); > inline perm_mask_t allow_mask(DCpermission perm) { return (1 << (1+2*perm)); } > inline perm_mask_t deny_mask(DCpermission perm) { return (1 << (2+2*perm)); } > > void PermMaskToString(perm_mask_t mask, MyString &mask_str); > bool lookup_user(StringList * list, const char * user); > char * merge(char * newPerm, char * oldPerm); > int did_init; > > bool add_host_entry( const char* addr, perm_mask_t new_mask ); > void process_allow_users( void ); > > PermTypeEntry* PermTypeArray[LAST_PERM]; > > typedef HashTable <struct in_addr, UserPerm_t *> PermHashTable_t; > PermHashTable_t* PermHashTable; > > typedef HashTable <MyString, perm_mask_t> HostHashTable_t; > HostHashTable_t* AllowHostsTable; >}; ># 29 "../condor_includes/reli_sock.h" 2 ># 37 "../condor_includes/reli_sock.h" >int relisock_gsi_get(void *arg, void **bufp, size_t *sizep); >int relisock_gsi_put(void *arg, void *buf, size_t size); > >class Authentication; >class Condor_MD_MAC; > > > > > > >class ReliSock : public Sock { > friend class Authentication; > > > >public: > > friend class DaemonCore; ># 64 "../condor_includes/reli_sock.h" > virtual int handle_incoming_packet(); > > > virtual int end_of_message(); > > > > > > virtual int connect(char const *s, int port=0, > bool do_not_block = false); ># 83 "../condor_includes/reli_sock.h" > bool connect_socketpair(ReliSock &dest); > > > ReliSock(); > > > ReliSock(const ReliSock &); > > > > Stream *CloneStream(); > > > ~ReliSock(); > > void init(); > > > int listen(); > > inline int listen(int p) { if (!bind(FALSE,p)) return FALSE; return listen(); } > > inline int listen(char *s) { if (!bind(FALSE,s)) return FALSE; return listen(); } > > > ReliSock *accept(); > > int accept(ReliSock &); > > int accept(ReliSock *); > > > int put_line_raw( char *buffer ); > > int get_line_raw( char *buffer, int max_length ); > > int put_bytes_raw( char *buffer, int length ); > > int get_bytes_raw( char *buffer, int length ); > > int put_bytes_nobuffer(char *buf, int length, int send_size=1); > > int get_bytes_nobuffer(char *buffer, int max_length, int receive_size=1); > > > > > > int get_file_with_permissions(filesize_t *size, const char *desination, > bool flush_buffers=false); > > > > int get_file( filesize_t *size, const char *destination, bool flush_buffers=false); > > int get_file( filesize_t *size, int fd, bool flush_buffers=false); > > > int put_file_with_permissions( filesize_t *size, const char *source); > > > > > > > > int put_file( filesize_t *size, const char *source); > > int put_file( filesize_t *size, int fd ); > > int get_x509_delegation( filesize_t *size, const char *destination, > bool flush_buffers=false ); > > int put_x509_delegation( filesize_t *size, const char *source ); > > float get_bytes_sent() { return _bytes_sent; } > > float get_bytes_recvd() { return _bytes_recvd; } > > void reset_bytes_sent() { _bytes_sent = 0; } > > void reset_bytes_recvd() { _bytes_recvd = 0; } > > > > int attach_to_file_desc(int); > > > > > > > > virtual stream_type type(); > > > > > virtual int put_bytes(const void *, int); > > virtual int get_bytes(void *, int); > > virtual int get_ptr(void *&, char); > > virtual int peek(char &); > > void setOwner( const char * ); > > int authenticate( const char* methods, CondorError* errstack ); > > int authenticate( KeyInfo *& key, const char* methods, CondorError* errstack ); > > virtual const char * getFullyQualifiedUser() const; > > const char *getOwner(); > > const char *getDomain(); > > const char * getHostAddress(); > > int isAuthenticated() const; > > void unAuthenticate(); > > > int encrypt(bool); > > bool is_encrypt(); > > int hdr_encrypt(); > > bool is_hdr_encrypt(); > > int isClient() { return is_client; }; > > const char * isIncomingDataMD5ed(); > > > > >protected: > > virtual bool init_MD(CONDOR_MD_MODE mode, KeyInfo * key, const char * keyId); > virtual bool set_encryption_id(const char * keyId); > > > > > > enum relisock_state { relisock_none, relisock_listen }; > > > > > char * serialize(char *); > char * serialize() const; > > int prepare_for_nobuffering( stream_coding = stream_unknown); > int perform_authenticate( bool with_key, KeyInfo *& key, > const char* methods, CondorError* errstack ); > > > > > int put_empty_file( filesize_t *size ); > > > > > > > class RcvMsg { > > CONDOR_MD_MODE mode_; > Condor_MD_MAC * mdChecker_; > ReliSock * p_sock; > > public: > RcvMsg(); > ~RcvMsg(); > int rcv_packet(int, int); > void init_parent(ReliSock *tmp){ p_sock = tmp; } > > ChainBuf buf; > int ready; > bool init_MD(CONDOR_MD_MODE mode, KeyInfo * key); > } rcv_msg; > > class SndMsg { > CONDOR_MD_MODE mode_; > Condor_MD_MAC * mdChecker_; > ReliSock * p_sock; > public: > SndMsg(); > ~SndMsg(); > Buf buf; > int snd_packet(int, int, int); > > > > void init_parent(ReliSock *tmp){ > p_sock = tmp; > buf.init_parent(tmp); > } > > bool init_MD(CONDOR_MD_MODE mode, KeyInfo * key); > > > } snd_msg; > > relisock_state _special_state; > int ignore_next_encode_eom; > int ignore_next_decode_eom; > float _bytes_sent, _bytes_recvd; > > Authentication * authob; > int is_client; > char *hostAddr; > char * fqu_; >}; ># 30 "../condor_includes/condor_io.h" 2 ># 1 "../condor_includes/safe_sock.h" 1 ># 32 "../condor_includes/safe_sock.h" ># 1 "../condor_c++_util/my_hostname.h" 1 ># 24 "../condor_c++_util/my_hostname.h" >extern "C" { > > >extern char* my_hostname( void ); >extern char* my_full_hostname( void ); >extern unsigned int my_ip_addr( void ); >extern struct in_addr* my_sin_addr( void ); >extern char* my_ip_string( void ); >extern void init_full_hostname( void ); >extern void init_ipaddr( int config_done ); > > >} > > > ># 1 "../condor_includes/stream.h" 1 ># 41 "../condor_c++_util/my_hostname.h" 2 ># 54 "../condor_c++_util/my_hostname.h" >void ConvertDefaultIPToSocketIP(char const *attr_name,char const *old_expr_string,char **new_expr_string,Stream& s); > > > > > >void ConvertDefaultIPToSocketIP(char const *attr_name,char **expr_string,Stream& s); ># 33 "../condor_includes/safe_sock.h" 2 ># 1 "../condor_includes/condor_random_num.h" 1 ># 24 "../condor_includes/condor_random_num.h" >extern "C" { > > >int set_seed(int seed); >int get_random_int(void); >unsigned int get_random_uint(void); >float get_random_float(void); > > >} ># 34 "../condor_includes/safe_sock.h" 2 ># 1 "../condor_includes/SafeMsg.h" 1 ># 21 "../condor_includes/SafeMsg.h" ># 1 "../condor_includes/condor_md.h" 1 ># 24 "../condor_includes/condor_md.h" >static const int MAC_SIZE = 16; > > > > > > > >class MD_Context; > >class Condor_MD_MAC { > public: > Condor_MD_MAC(); ># 45 "../condor_includes/condor_md.h" > ~Condor_MD_MAC(); > > Condor_MD_MAC(KeyInfo * key); > > > > > > > > static unsigned char * computeOnce(unsigned char * buffer, unsigned long length); > static unsigned char * computeOnce(unsigned char * buffer, unsigned long length, KeyInfo * key); > static bool verifyMD(unsigned char * md, unsigned char * buffer, unsigned long length); > static bool verifyMD(unsigned char * md, unsigned char * buffer, unsigned long length, KeyInfo * key); > > > > > > > void addMD(const unsigned char * buffer, unsigned long length); > > > > > > void addMDFile(const char * path); > > > > > > > > unsigned char * computeMD(); ># 89 "../condor_includes/condor_md.h" > bool verifyMD(unsigned char * md); ># 101 "../condor_includes/condor_md.h" > private: > > void init(); > > bool isMAC_; > MD_Context * context_; > KeyInfo * key_; >}; ># 22 "../condor_includes/SafeMsg.h" 2 > >struct _condorDEntry { > int dLen; > char* dGram; >}; > >struct _condorMsgID { > long ip_addr; > int pid; > long time; > int msgNo; >}; > > > > > >static const int SAFE_MSG_NO_OF_DIR_ENTRY = 41; >class _condorDirPage >{ > friend class _condorInMsg; > private: > _condorDirPage* prevDir; > int dirNo; > _condorDEntry dEntry[SAFE_MSG_NO_OF_DIR_ENTRY]; > _condorDirPage* nextDir; > > public: > _condorDirPage(_condorDirPage* prev, const int num); > ~_condorDirPage(); >}; > > >class _condorInMsg >{ > friend class SafeSock; > > public: > > _condorInMsg(const _condorMsgID mID, > const bool last, > const int seq, > const int len, > const void* data, > const char * MD5KeyId, > const unsigned char * md, > const char * EncKeyId, > _condorInMsg* prev); > > ~_condorInMsg(); > > > bool addPacket(const bool last, > const int seq, > const int len, > const void* data); > > > int getn(char *dta, > const int n); > > int getPtr (void *&ptr, const char delim); > > > int peek(char &c); > > void set_sec(const char * MD5Keyid, > const unsigned char * md, > const char * EncKeyId); > > const char * isDataMD5ed(); > const char * isDataEncrypted(); > > void resetEnc(); > void resetMD(); > > bool consumed(); > void dumpMsg(); > > > private: > bool verifyMD(Condor_MD_MAC * mdChecker); > > _condorMsgID msgID; > long msgLen; > int lastNo; > int received; > time_t lastTime; > int passed; > _condorDirPage* headDir; > _condorDirPage* curDir; > int curPacket; > > int curData; > > _condorInMsg* prevMsg; > > _condorInMsg* nextMsg; > > char *tempBuf; > > size_t tempBufLen; > char * incomingMD5KeyId_; > char * incomingEncKeyId_; > unsigned char * md_; > bool verified_; > > > > inline void incrementCurData( int n ); >}; > >static const int SAFE_MSG_MAX_PACKET_SIZE = 60000; >static const int SAFE_MSG_HEADER_SIZE = 25; >static const int SAFE_MSG_FRAGMENT_SIZE = 1000; > >static const char* const SAFE_MSG_MAGIC = "MaGic6.0"; > >class _condorPacket >{ > friend class _condorOutMsg; > friend class SafeSock; > > public: > _condorPacket(); > ~_condorPacket(); > > > > int getHeader(int msgsize, > bool &last, > int &seq, > int &len, > _condorMsgID &mID, > void *&dta); > > int headerLen(); > > > > int getn(char *dta, > const int n); > > int getPtr(void *&ptr, const char delim); > > > int peek(char &c); > > > void reset(); > > > bool consumed(); > > > int putMax(const void* dta, > const int size); > > > bool full(); > > > bool empty(); > > > void makeHeader(bool last, int seqNo, _condorMsgID msgID, unsigned char * md = 0); > > const char * isDataMD5ed(); > const char * isDataEncrypted(); > const unsigned char * md(); > bool verifyMD(Condor_MD_MAC * mdChecker); > void addExtendedHeader(unsigned char * mac) ; > bool init_MD(const char * keyID = 0); > bool set_encryption_id(const char * keyId); > void addMD(); > > > > > > > > private: > void init(); > void addEID(); > void checkHeader(int & len, void *& dta); > void resetMD(); > void resetEnc(); > > > > int length; > char* data; > > > int curIndex; > char dataGram[SAFE_MSG_MAX_PACKET_SIZE]; > > _condorPacket* next; > > short outgoingMdLen_; > short outgoingEidLen_; > char * incomingMD5KeyId_; > char * outgoingMD5KeyId_; > char * incomingEncKeyId_; > char * outgoingEncKeyId_; > bool verified_; > unsigned char * md_; >}; > > >class _condorOutMsg >{ > friend class SafeSock; > > public: > > _condorOutMsg(); > _condorOutMsg(KeyInfo * key, const char * keyId); > > ~_condorOutMsg(); > > > int putn(const char *dta, > const int n); > > > int sendMsg(const int sock, > const struct sockaddr* who, > _condorMsgID msgID, > unsigned char * mac = 0); > > void endOfMsg(); > > void clearMsg(); > > bool init_MD(const char * keyId = 0); > bool set_encryption_id(const char * keyId); > unsigned long getAvgMsgSize(); > > > > > > > > private: > _condorPacket* headPacket; > _condorPacket* lastPacket; > unsigned long noMsgSent; > unsigned long avgMsgSize; >}; ># 35 "../condor_includes/safe_sock.h" 2 > >static const int SAFE_SOCK_HASH_BUCKET_SIZE = 7; >static const int SAFE_SOCK_MAX_BTW_PKT_ARVL = 10; > > > > > > > >class SafeSock : public Sock { > > > >public: > friend class DaemonCore; > > > virtual int handle_incoming_packet(); > virtual int end_of_message(); > > virtual stream_type type() { return Stream::safe_sock; } > > > > > > > virtual int connect(char const *s, int port=0, bool do_not_block = false); > > > virtual const char* sender_ip_str(); > > > inline int connect(char const *h, char *s) { return connect(h,getportbyserv(s));} > void getStat(unsigned long &noMsgs, > unsigned long &noWhole, > unsigned long &noDeleted, > unsigned long &avgMsgSize, > unsigned long &szComplete, > unsigned long &szDeleted); > void resetStat(); > > > SafeSock(); > > > SafeSock(const SafeSock &); > > > > Stream *CloneStream(); > > > ~SafeSock(); > > > void init(); > > const char * isIncomingDataMD5ed(); > const char * isIncomingDataEncrypted(); > > virtual void setFullyQualifiedUser(char * u); > virtual const char * getFullyQualifiedUser() const; > virtual int isAuthenticated() const; > void setAuthenticated(bool authenticated = true); ># 109 "../condor_includes/safe_sock.h" > int attach_to_file_desc(int); > > > > > > virtual int put_bytes(const void *, int); > > virtual int get_bytes(void *, int); > > virtual int get_ptr(void *&, char); > > virtual int peek(char &); > > > > > >protected: > > bool init_MD(CONDOR_MD_MODE mode, KeyInfo * key, const char * keyId); > bool set_encryption_id(const char * keyId); > > static _condorMsgID _outMsgID; > > enum safesock_state { safesock_none, safesock_listen }; > > char * serialize(char *); > char * serialize() const; > inline bool same(const _condorMsgID msgA, > const _condorMsgID msgB) > { > if(msgA.ip_addr == msgB.ip_addr && > msgA.pid == msgB.pid && > msgA.time == msgB.time && > msgA.msgNo == msgB.msgNo) > return true; > else return false; > } > > safesock_state _special_state; > _condorOutMsg _outMsg; > _condorInMsg *_inMsgs[SAFE_SOCK_HASH_BUCKET_SIZE]; > _condorPacket _shortMsg; > bool _msgReady; > _condorInMsg *_longMsg; > Condor_MD_MAC * mdChecker_; > int _tOutBtwPkts; > char* _fqu; > int _authenticated; > > > static unsigned long _noMsgs; > static unsigned long _whole;; > static unsigned long _deleted; > static unsigned long _avgSwhole; > static unsigned long _avgSdeleted; >}; ># 31 "../condor_includes/condor_io.h" 2 ># 1 "../condor_includes/sockCache.h" 1 ># 27 "../condor_includes/sockCache.h" >class ReliSock; > > > >class SocketCache >{ >public: > > SocketCache( int size = 16 ); > ~SocketCache(); > > void resize( int size ); > > void clearCache( void ); > void invalidateSock( const char* ); > > ReliSock* findReliSock( const char* addr ); > void addReliSock( const char* addr, ReliSock* rsock ); > > bool isFull( void ); > int size( void ); > >private: > > struct sockEntry > { > bool valid; > char addr[32]; > ReliSock *sock; > int timeStamp; > }; > > int getCacheSlot( void ); > void invalidateEntry( int i ); > void initEntry( sockEntry* entry ); > > int timeStamp; > sockEntry *sockCache; > int cacheSize; >}; ># 32 "../condor_includes/condor_io.h" 2 ># 22 "soap_core.h" 2 > ># 1 "../condor_includes/stdsoap2.h" 1 ># 24 "soap_core.h" 2 > >void init_soap(struct soap *soap); > >int handle_soap_ssl_socket(Service *, Stream *stream); > >int http_get_handler(struct soap *soap); ># 31 "daemon_core.C" 2 > > ># 1 "../condor_includes/condor_socket_types.h" 1 ># 34 "daemon_core.C" 2 ># 47 "daemon_core.C" >static const int DEFAULT_MAXCOMMANDS = 255; >static const int DEFAULT_MAXSIGNALS = 99; >static const int DEFAULT_MAXSOCKETS = 8; >static const int DEFAULT_MAXPIPES = 8; >static const int DEFAULT_MAXREAPS = 100; >static const int DEFAULT_PIDBUCKETS = 11; >static const int DEFAULT_MAX_PID_COLLISIONS = 9; >static const char* DEFAULT_INDENT = "DaemonCore--> "; >static const int MAX_TIME_SKIP = (60*20); >static const int MIN_FILE_DESCRIPTOR_SAFETY_LIMIT = 20; >static const int MIN_REGISTERED_SOCKET_SAFETY_LIMIT = 15; > ># 1 "../condor_includes/authentication.h" 1 ># 25 "../condor_includes/authentication.h" ># 1 "../condor_includes/condor_auth.h" 1 ># 25 "../condor_includes/condor_auth.h" ># 1 "../condor_includes/condor_debug.h" 1 ># 26 "../condor_includes/condor_auth.h" 2 ># 1 "../h/internet.h" 1 ># 40 "../h/internet.h" >extern "C" { > > > >int string_to_sin(const char *addr, struct sockaddr_in *s_in); > > >int condor_inet_aton(const char *ipstr, struct in_addr *result); > >char *sin_to_string(const struct sockaddr_in *s_in); > > >int string_to_port( const char* addr ); > > > >unsigned int string_to_ip( const char* addr ); > > > >char* string_to_ipstr( const char* addr ); > > >char* string_to_hostname( const char* addr ); > > >char * hostname_to_string (const char * hostname, const int default_port ); > >char *sock_to_string(int sockd); > > > > > > > >char const * >sock_peer_to_string( int fd, char *buf, size_t buflen, char const *unknown); > > > >char *sin_to_hostname(const struct sockaddr_in *s_in, char ***aliases); > >void >display_from( struct sockaddr_in *from ); > > > >int same_host(const char *h1, const char *h2); > > >int host_in_domain(const char *host, const char *domain); > >char* calc_subnet_name(void); > >int is_ipaddr(const char *inbuf, struct in_addr *sin_addr); > >int is_valid_network( const char *network, struct in_addr *ip, struct in_addr *mask); > >int is_valid_sinful( const char *sinful ); > > > >int getPortFromAddr( const char* addr ); > > > > >char* getHostFromAddr( const char* addr ); > > > > >char* getAddrFromClaimId( const char* id ); > > > > >int _condor_local_bind( int is_outgoing, int fd ); > >int is_priv_net(uint32_t ip); >int in_same_net(uint32_t ipA, uint32_t ipB); >char *ipport_to_string(const unsigned int ip, const unsigned short port); >char *prt_fds(int maxfd, fd_set *fds); > > > >struct sockaddr_in *getSockAddr(int sockfd); > > >} ># 27 "../condor_includes/condor_auth.h" 2 ># 1 "../condor_includes/condor_uid.h" 1 ># 45 "../condor_includes/condor_uid.h" >extern "C" { > > > > > > >typedef enum { > PRIV_UNKNOWN, > PRIV_ROOT, > PRIV_CONDOR, > PRIV_USER, > PRIV_USER_FINAL, > PRIV_FILE_OWNER, > _priv_state_threshold >} priv_state; ># 79 "../condor_includes/condor_uid.h" >const char *get_user_loginname(void); >int can_switch_ids( void ); >void clear_passwd_cache(void); >void delete_passwd_cache(void); >void init_condor_ids(void); >void uninit_user_ids(void); >void uninit_file_owner_ids(void); >int set_file_owner_ids( uid_t uid, gid_t gid ); >int init_user_ids(const char username[], const char domain[]); >int init_user_ids_quiet(const char username[]); >int set_user_ids(uid_t uid, gid_t gid); >int set_user_ids_quiet(uid_t uid, gid_t gid); >void set_user_tracking_gid(gid_t); >void unset_user_tracking_gid(void); >priv_state _set_priv(priv_state s, char file[], int line, int dologging); >uid_t get_my_uid(void); >gid_t get_my_gid(void); >priv_state get_priv(void); >const char* priv_to_string( priv_state s ); >const char* priv_identifier( priv_state s ); > > > >uid_t get_condor_uid(void); >gid_t get_condor_gid(void); >uid_t get_user_uid(void); >gid_t get_user_gid(void); >uid_t get_file_owner_uid(void); >gid_t get_file_owner_gid(void); >uid_t get_real_condor_uid(void); >gid_t get_real_condor_gid(void); > > > > > >int is_root( void ); > >const char* get_real_username(void); >const char* get_condor_username(void); >void display_priv_log(void); > > >} > > > ># 1 "../condor_c++_util/passwd_cache.h" 1 ># 24 "../condor_c++_util/passwd_cache.h" ># 1 "/usr/include/grp.h" 1 3 4 ># 28 "/usr/include/grp.h" 3 4 >extern "C" { > > > > ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 34 "/usr/include/grp.h" 2 3 4 ># 43 "/usr/include/grp.h" 3 4 >struct group > { > char *gr_name; > char *gr_passwd; > __gid_t gr_gid; > char **gr_mem; > }; ># 63 "/usr/include/grp.h" 3 4 >extern void setgrent (void); > > > > > >extern void endgrent (void); > > > > > >extern struct group *getgrent (void); ># 85 "/usr/include/grp.h" 3 4 >extern struct group *fgetgrent (FILE *__stream); ># 95 "/usr/include/grp.h" 3 4 >extern int putgrent (__const struct group *__restrict __p, > FILE *__restrict __f); > > > > > > >extern struct group *getgrgid (__gid_t __gid); > > > > > >extern struct group *getgrnam (__const char *__name); ># 133 "/usr/include/grp.h" 3 4 >extern int getgrent_r (struct group *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct group **__restrict __result); > > > > > > >extern int getgrgid_r (__gid_t __gid, struct group *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct group **__restrict __result); > > > > > >extern int getgrnam_r (__const char *__restrict __name, > struct group *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct group **__restrict __result); ># 163 "/usr/include/grp.h" 3 4 >extern int fgetgrent_r (FILE *__restrict __stream, > struct group *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct group **__restrict __result); ># 175 "/usr/include/grp.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 176 "/usr/include/grp.h" 2 3 4 > > >extern int setgroups (size_t __n, __const __gid_t *__groups) throw (); ># 188 "/usr/include/grp.h" 3 4 >extern int getgrouplist (__const char *__user, __gid_t __group, > __gid_t *__groups, int *__ngroups); ># 199 "/usr/include/grp.h" 3 4 >extern int initgroups (__const char *__user, __gid_t __group); > > > >} ># 25 "../condor_c++_util/passwd_cache.h" 2 ># 1 "../condor_c++_util/MyString.h" 1 ># 26 "../condor_c++_util/passwd_cache.h" 2 > >template <class Key, class Value> class HashTable; > >typedef struct group_entry { > gid_t *gidlist; > size_t gidlist_sz; > time_t lastupdated; >} group_entry; > >typedef struct uid_entry { > uid_t uid; > gid_t gid; > time_t lastupdated; >} uid_entry; > > >int compute_user_hash(const MyString &key, int numBuckets); > >typedef HashTable <MyString, uid_entry*> UidHashTable; >typedef HashTable <MyString, group_entry*> GroupHashTable; > > > > > >class passwd_cache { > > public: > > passwd_cache(); > ~passwd_cache(); > > > void reset(); > > > > bool cache_uid(const char* user); > > > > bool cache_groups(const char* user); > > > > > > int num_groups(const char* user); > > > > bool get_groups(const char* user, size_t groupsize, gid_t list[]); > > > bool get_user_uid(const char* user, uid_t &uid); > > > bool get_user_gid(const char* user, gid_t &gid); > > > bool get_user_ids(const char* user, uid_t &uid, gid_t &gid); > > > > > bool get_user_name(const uid_t uid, char *&user); > > > > > bool init_groups(const char* user, gid_t additional_gid = 0); > > > > > int get_uid_entry_age(const char *user); > int get_group_entry_age(const char *user); > > > > > time_t get_entry_lifetime() { return Entry_lifetime; } > > > private: > > > > > bool cache_uid(const struct passwd *pwent); > > > void init_uid_entry(uid_entry *&uce); > void init_group_entry(group_entry *&gce); > > > > bool lookup_uid(const char* user, uid_entry *&uce); > bool lookup_group(const char* user, group_entry *&gce); > > > bool lookup_uid_entry( const char* user, uid_entry *&uce ); > > > > long groups_max; > > > time_t Entry_lifetime; > > > UidHashTable *uid_table; > GroupHashTable *group_table; >}; ># 127 "../condor_includes/condor_uid.h" 2 >extern passwd_cache* pcache(void); ># 28 "../condor_includes/condor_auth.h" 2 ># 1 "../condor_c++_util/my_username.h" 1 ># 27 "../condor_c++_util/my_username.h" >char *my_username( int uuid = -1 ); > >char *my_domainname( void ); ># 29 "../condor_includes/condor_auth.h" 2 > > >const int CAUTH_NONE = 0; >const int CAUTH_ANY = 1; >const int CAUTH_CLAIMTOBE = 2; >const int CAUTH_FILESYSTEM = 4; >const int CAUTH_FILESYSTEM_REMOTE = 8; >const int CAUTH_NTSSPI = 16; >const int CAUTH_GSI = 32; >const int CAUTH_KERBEROS = 64; >const int CAUTH_ANONYMOUS = 128; >const int CAUTH_SSL = 256; >const int CAUTH_PASSWORD = 512; > >const char STR_DEFAULT_CONDOR_USER[] = "condor"; >const char STR_DEFAULT_CONDOR_SPOOL[] = "SPOOL"; >const char STR_DEFAULT_CACHE_DIR[] = "/tmp"; >const char STR_CONDOR_CACHE_DIR[] = "CONDOR_CACHE_DIR"; > > > > > > >class Condor_Auth_Base { > public: > > Condor_Auth_Base(ReliSock * sock, int mode); > > > > > > > > virtual ~Condor_Auth_Base(); > > > > > > > virtual int authenticate(const char * remoteHost, CondorError* errstack) = 0; > > > > > > > > virtual int isValid() const = 0; > > > > > > > > virtual int endTime() const; > > > > > > > > virtual int wrap(char* input, > int input_len, > char*& output, > int& output_len); ># 108 "../condor_includes/condor_auth.h" > virtual int unwrap(char* input, > int input_len, > char*& output, > int& output_len); > > > > > > > int isAuthenticated() const; ># 127 "../condor_includes/condor_auth.h" > int getMode() const; > > > > > > > const char * getAuthenticatedName() const; > > const char * getRemoteFQU(); > > > > > > > > const char * getRemoteUser() const; ># 153 "../condor_includes/condor_auth.h" > const char * getRemoteHost() const; > > > > > > > const char * getRemoteDomain() const; > const char * getLocalDomain() const; ># 172 "../condor_includes/condor_auth.h" > Condor_Auth_Base& setAuthenticated(int authenticated); > > > > > > > Condor_Auth_Base& setRemoteUser(const char * user); > > > > > > > Condor_Auth_Base& setRemoteDomain(const char * domain); > > > > > > > protected: > > Condor_Auth_Base& setRemoteHost(const char * hostAddr); > > > > > > > Condor_Auth_Base& setAuthenticatedName(const char * auth_name); > > Condor_Auth_Base& setFullyQualifiedUser(const char * fqu); > > bool isDaemon() const; > > > > > > > ReliSock * mySock_; > > private: > Condor_Auth_Base(); ># 225 "../condor_includes/condor_auth.h" > int authenticated_; > int mode_; > bool isDaemon_; > char * remoteUser_; > char * remoteDomain_; > char * remoteHost_; > char * localDomain_; > char * fqu_; > char * authenticatedName_; >}; ># 26 "../condor_includes/authentication.h" 2 > > > ># 1 "../condor_c++_util/MapFile.h" 1 ># 24 "../condor_c++_util/MapFile.h" ># 1 "../condor_c++_util/Regex.h" 1 ># 24 "../condor_c++_util/Regex.h" ># 1 "../condor_c++_util/MyString.h" 1 ># 25 "../condor_c++_util/Regex.h" 2 ># 1 "../condor_c++_util/extArray.h" 1 ># 26 "../condor_c++_util/Regex.h" 2 > > > ># 1 "/usr/include/pcre.h" 1 3 4 ># 95 "/usr/include/pcre.h" 3 4 >extern "C" { ># 195 "/usr/include/pcre.h" 3 4 >struct real_pcre; >typedef struct real_pcre pcre; ># 210 "/usr/include/pcre.h" 3 4 >typedef struct pcre_extra { > unsigned long int flags; > void *study_data; > unsigned long int match_limit; > void *callout_data; > const unsigned char *tables; > unsigned long int match_limit_recursion; >} pcre_extra; > > > > > > >typedef struct pcre_callout_block { > int version; > > int callout_number; > int *offset_vector; > const char * subject; > int subject_length; > int start_match; > int current_position; > int capture_top; > int capture_last; > void *callout_data; > > int pattern_position; > int next_item_length; > >} pcre_callout_block; ># 249 "/usr/include/pcre.h" 3 4 >extern "C" void *(*pcre_malloc)(size_t); >extern "C" void (*pcre_free)(void *); >extern "C" void *(*pcre_stack_malloc)(size_t); >extern "C" void (*pcre_stack_free)(void *); >extern "C" int (*pcre_callout)(pcre_callout_block *); ># 264 "/usr/include/pcre.h" 3 4 >extern "C" pcre *pcre_compile(const char *, int, const char **, int *, > const unsigned char *); >extern "C" pcre *pcre_compile2(const char *, int, int *, const char **, > int *, const unsigned char *); >extern "C" int pcre_config(int, void *); >extern "C" int pcre_copy_named_substring(const pcre *, const char *, > int *, int, const char *, char *, int); >extern "C" int pcre_copy_substring(const char *, int *, int, int, char *, > int); >extern "C" int pcre_dfa_exec(const pcre *, const pcre_extra *, > const char *, int, int, int, int *, int , int *, int); >extern "C" int pcre_exec(const pcre *, const pcre_extra *, const char *, > int, int, int, int *, int); >extern "C" void pcre_free_substring(const char *); >extern "C" void pcre_free_substring_list(const char **); >extern "C" int pcre_fullinfo(const pcre *, const pcre_extra *, int, > void *); >extern "C" int pcre_get_named_substring(const pcre *, const char *, > int *, int, const char *, const char **); >extern "C" int pcre_get_stringnumber(const pcre *, const char *); >extern "C" int pcre_get_stringtable_entries(const pcre *, const char *, > char **, char **); >extern "C" int pcre_get_substring(const char *, int *, int, int, > const char **); >extern "C" int pcre_get_substring_list(const char *, int *, int, > const char ***); >extern "C" int pcre_info(const pcre *, int *, int *); >extern "C" const unsigned char *pcre_maketables(void); >extern "C" int pcre_refcount(pcre *, int); >extern "C" pcre_extra *pcre_study(const pcre *, int, const char **); >extern "C" const char *pcre_version(void); > > >} ># 30 "../condor_c++_util/Regex.h" 2 > > > > >class Regex >{ > >public: > > > enum { > anchored = 0x00000010, > caseless = 0x00000001, > dollarend = 0x00000020, > dotall = 0x00000004, > extended = 0x00000008, > multiline = 0x00000002, > ungreedy = 0x00000200 > }; > > Regex(); > > Regex(const Regex & copy); > const Regex & operator = (const Regex & copy); > ~Regex(); ># 64 "../condor_c++_util/Regex.h" > bool compile(const MyString & pattern, > const char ** errstr, > int * erroffset, > int options = 0); ># 77 "../condor_c++_util/Regex.h" > bool match(const MyString & string, > ExtArray<MyString> * groups = __null); > > > > > > > > bool isInitialized( ); > >private: > > pcre * re; > int options; > > static pcre * clone_re(pcre * re); >}; ># 25 "../condor_c++_util/MapFile.h" 2 > ># 1 "../condor_c++_util/MyString.h" 1 ># 27 "../condor_c++_util/MapFile.h" 2 > > >class MapFile >{ > public: > MapFile(); > ~MapFile(); > > int > ParseCanonicalizationFile(const MyString filename); > > int > ParseUsermapFile(const MyString filename); > > int > GetCanonicalization(const MyString method, > const MyString principal, > MyString & canonicalization); > > int > GetUser(const MyString canonicalization, > MyString & user); > > private: > struct CanonicalMapEntry { > MyString method; > MyString principal; > MyString canonicalization; > Regex regex; > }; > > struct UserMapEntry { > MyString canonicalization; > MyString user; > Regex regex; > }; > > ExtArray<CanonicalMapEntry> canonical_entries; > ExtArray<UserMapEntry> user_entries; > > bool > PerformMapping(Regex & regex, > const MyString input, > const MyString pattern, > MyString & output); > > void > PerformSubstitution(ExtArray<MyString> & groups, > const MyString pattern, > MyString & output); > > int > ParseField(MyString & line, int offset, MyString & field); >}; ># 30 "../condor_includes/authentication.h" 2 > > > >enum transfer_mode { > NORMAL = 1, > ENCRYPT, > ENCRYPT_HDR >}; > >class Authentication { > > friend class ReliSock; > > public: > > Authentication( ReliSock *sock ); > > ~Authentication(); > > int authenticate( char *hostAddr, const char* auth_methods, CondorError* errstack); > > > > > > > > int authenticate( char *hostAddr, KeyInfo *& key, const char* auth_methods, CondorError* errstack); ># 68 "../condor_includes/authentication.h" > char* getMethodUsed(); ># 77 "../condor_includes/authentication.h" > int isAuthenticated() const; > > > > > > > void unAuthenticate(); > > > > > > > void setAuthAny(); > > int setOwner( const char *owner ); > > const char *getFullyQualifiedUser() const; > > const char *getOwner() const; > > const char *getDomain() const; > > const char * getRemoteAddress() const; > > > > > > > bool is_valid(); > > > > > > > > int end_time(); ># 125 "../condor_includes/authentication.h" > int encrypt(bool); > > > > > > > bool is_encrypt(); > > > > > > > > int hdr_encrypt(); > > > > > > > bool is_hdr_encrypt(); > > > > > > > > int wrap(char* input, int input_len, char*& output,int& output_len); > > > > > > > > int unwrap(char* input, int input_len, char*& output, int& output_len); > > > > > > > > static void split_canonical_name(MyString can_name, MyString& user, MyString& domain ); > > > private: > > Authentication() {}; > > int handshake(MyString clientCanUse); > > int exchangeKey(KeyInfo *& key); > > void setAuthType( int state ); > > int selectAuthenticationType( MyString my_methods, int remote_methods ); > > void map_authentication_name_to_canonical_name(int authentication_type, const char* method_string, const char* authentication_name); > > > > > > > > Condor_Auth_Base * authenticator_; > ReliSock * mySock; > transfer_mode t_mode; > int auth_status; > char* method_used; > > static MapFile* global_map_file; > static bool global_map_file_load_attempted; > >}; ># 60 "daemon_core.C" 2 ># 1 "../condor_daemon_client/daemon.h" 1 ># 28 "../condor_daemon_client/daemon.h" >class Daemon; > > > ># 1 "../condor_includes/condor_classad.h" 1 ># 29 "../condor_includes/condor_classad.h" ># 1 "../condor_includes/condor_exprtype.h" 1 ># 41 "../condor_includes/condor_exprtype.h" >typedef enum >{ > > LX_VARIABLE, > LX_INTEGER, > LX_FLOAT, > LX_STRING, > LX_BOOL, > LX_NULL, > LX_UNDEFINED, > LX_ERROR, > > > LX_ASSIGN, > LX_AGGADD, > LX_AGGEQ, > LX_AND, > LX_OR, > LX_LPAREN, > LX_RPAREN, > LX_MACRO, > LX_META_EQ, > LX_META_NEQ, > LX_EQ, > LX_NEQ, > LX_LT, > LX_LE, > LX_GT, > LX_GE, > LX_ADD, > LX_SUB, > LX_MULT, > LX_DIV, > LX_EOF, > > LX_EXPR, > > LX_TIME, > > LX_FUNCTION, > LX_SEMICOLON, > LX_COMMA, > > NOT_KEYWORD >} LexemeType; ># 30 "../condor_includes/condor_classad.h" 2 ># 1 "../condor_includes/condor_ast.h" 1 ># 66 "../condor_includes/condor_ast.h" ># 1 "../condor_includes/condor_astbase.h" 1 ># 76 "../condor_includes/condor_astbase.h" ># 1 "../condor_c++_util/stringSpace.h" 1 ># 24 "../condor_c++_util/stringSpace.h" ># 1 "../condor_c++_util/MyString.h" 1 ># 25 "../condor_c++_util/stringSpace.h" 2 > > >template <class Key, class Value> class HashTable; >class YourSensitiveString; > >enum StringSpaceAdoptionMethod >{ > SS_INVALID, > SS_DUP, > SS_ADOPT_C_STRING, > SS_ADOPT_CPLUS_STRING >}; > > >class SSString; ># 91 "../condor_c++_util/stringSpace.h" >class StringSpace >{ > public: > > > > > StringSpace (int initial_size=15000); > > > > > ~StringSpace (); > > > > > > > int getCanonical(char* &str, SSString& cannonical, > StringSpaceAdoptionMethod adopt=SS_DUP); > > > > > > int getCanonical(char* &str, SSString*& cannonical, > StringSpaceAdoptionMethod adopt=SS_DUP); ># 127 "../condor_c++_util/stringSpace.h" > int getCanonical(char* &str, > StringSpaceAdoptionMethod adopt=SS_DUP); > > > > > inline int checkFor (char *str); > > > > inline int getNumStrings (void); > > inline const char *operator[] (SSString); > > > > > inline const char *operator[] (int); > > > > void disposeByIndex(int index); > > > void dump (); > > > > > > void purge(); > > private: > friend class SSString; > > > struct SSStringEnt > { > bool inUse; > int refCount; > char *string; > int adoptMode; > }; > > class HashTable<YourSensitiveString,int> *stringSpace; > ExtArray<SSStringEnt> strTable; > > > > int first_free_slot; > int highest_used_slot; > int number_of_slots_filled; >}; > > > > > > >class SSString >{ > public: > > SSString(); > > SSString(const SSString &); > > ~SSString(); > > > const SSString &operator= (const SSString &str); > > > friend bool operator== (const SSString &s1, const SSString &s2); > > > friend bool operator!= (const SSString &s1, const SSString &s2); > > > void copy (const SSString &); > > > > void dispose (); > > > > > inline const char *getCharString (void); > > > > > inline int getIndex (void); > > private: > friend class StringSpace; > > int index; > StringSpace *context; >}; > > > > > > >inline const char * StringSpace:: >operator[] (SSString ssstr) >{ > const char *the_string; > if (ssstr.index >= 0 && ssstr.index <= highest_used_slot && ssstr.context == this) { > the_string = strTable[ssstr.index].string; > } else { > the_string = __null; > } > return the_string; >} > >inline const char * StringSpace:: >operator[] (int id) >{ > const char *the_string; > if (id >= 0 && id <= highest_used_slot) { > the_string = strTable[id].string; > } else { > the_string = __null; > } > return the_string; >} > >inline int >StringSpace::getNumStrings (void) >{ > return number_of_slots_filled; >} > > >inline const char * >SSString::getCharString (void) >{ > const char *the_string; > if (context != __null) { > the_string = context->strTable[index].string; > } else { > the_string = __null; > } > return the_string; >} > > >inline int SSString:: >getIndex (void) >{ > return index; >} ># 77 "../condor_includes/condor_astbase.h" 2 > > >class AttrList; >class EvalResult; >class MyString; > >class ExprTree >{ > public : > > virtual int operator ==(ExprTree&); > virtual int operator >(ExprTree&); > virtual int operator >=(ExprTree&); > virtual int operator <(ExprTree&); > virtual int operator <=(ExprTree&); > > LexemeType MyType() { return type; } > virtual ExprTree* LArg() { return __null; } > virtual ExprTree* RArg() { return __null; } > virtual ExprTree* DeepCopy(void) const = 0; > virtual void Display(); > virtual int CalcPrintToStr(void) {return 0;} > virtual void PrintToNewStr(char **str); > virtual void PrintToStr(char*) {} > virtual void PrintToStr(MyString &); > > int EvalTree(const AttrList*, EvalResult*); > int EvalTree(const AttrList*, const AttrList*, EvalResult*); > virtual void GetReferences(const AttrList *base_attrlist, > StringList &internal_references, > StringList &external_references) const; > > char unit; > > bool invisible; ># 125 "../condor_includes/condor_astbase.h" > ExprTree() : unit('\0'), evalFlag(0) > { > > if (string_space_references == 0) { > string_space = new StringSpace; > } > string_space_references++; > > invisible = false; > return; > } > virtual ~ExprTree() > { > > string_space_references--; > if (string_space_references == 0) { > delete string_space; > string_space = __null; > } > > return; > } > > protected : > virtual void CopyBaseExprTree(class ExprTree *const recipient) const; > virtual int _EvalTree(const class AttrList*, EvalResult*) = 0; > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*) = 0; > > LexemeType type; > bool evalFlag; > > > static StringSpace *string_space; > static int string_space_references; > > >}; > >class VariableBase : public ExprTree >{ > public : > > VariableBase(char*); > virtual ~VariableBase(); > > virtual int operator ==(ExprTree&); > > virtual void Display(); > char* const Name() { return name; } > virtual void GetReferences(const AttrList *base_attrlist, > StringList &internal_references, > StringList &external_references) const; > > friend class ExprTree; > > protected : > virtual int _EvalTree(const class AttrList*, EvalResult*) = 0; > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*) = 0; > > > int stringSpaceIndex; > > char* name; >}; > >class IntegerBase : public ExprTree >{ > public : > > IntegerBase(int); > > virtual int operator ==(ExprTree&); > virtual int operator >(ExprTree&); > virtual int operator >=(ExprTree&); > virtual int operator <(ExprTree&); > virtual int operator <=(ExprTree&); > > virtual void Display(); > int Value(); > > protected : > virtual int _EvalTree(const class AttrList*, EvalResult*) = 0; > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*) = 0; > > int value; >}; > >class FloatBase : public ExprTree >{ > public : > > FloatBase(float); > > virtual int operator ==(ExprTree&); > virtual int operator >(ExprTree&); > virtual int operator >=(ExprTree&); > virtual int operator <(ExprTree&); > virtual int operator <=(ExprTree&); > > virtual void Display(); > float Value(); > > protected : > virtual int _EvalTree(const class AttrList*, EvalResult*) = 0; > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*) = 0; > > float value; >}; > >class StringBase : public ExprTree >{ > public : > > StringBase(char*); > virtual ~StringBase(); > > virtual int operator ==(ExprTree&); > > virtual void Display(); > char* const Value(); > > friend class ExprTree; > > protected : > virtual int _EvalTree(const class AttrList*, EvalResult*) = 0; > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*) = 0; > > > int stringSpaceIndex; > > char* value; >}; > >class ISOTimeBase : public ExprTree >{ > public : > > ISOTimeBase(char*); > virtual ~ISOTimeBase(); > > virtual int operator ==(ExprTree&); > > virtual void Display(); > char* const Value(); > > friend class ExprTree; > > protected : > virtual int _EvalTree(const class AttrList*, EvalResult*) = 0; > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*) = 0; > > > int stringSpaceIndex; > > char *time; >}; > >class BooleanBase : public ExprTree >{ > public : > > BooleanBase(int); > virtual int operator ==(ExprTree&); > > virtual void Display(); > int Value(); > > protected : > virtual int _EvalTree(const class AttrList*, EvalResult*) = 0; > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*) = 0; > > int value; >}; > > >class UndefinedBase : public ExprTree >{ > public : > > UndefinedBase(); > virtual void Display(); > > protected : > virtual int _EvalTree(const class AttrList*, EvalResult*) = 0; > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*) = 0; >}; > >class ErrorBase : public ExprTree >{ > public : > > ErrorBase(); > > virtual void Display(); > > protected : > virtual int _EvalTree(const class AttrList*, EvalResult*) = 0; > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*) = 0; >}; > >class BinaryOpBase : public ExprTree >{ > public : > > virtual ~BinaryOpBase(); > virtual int operator ==(ExprTree&); > > virtual ExprTree* LArg() { return lArg; } > virtual ExprTree* RArg() { return rArg; } > > virtual void GetReferences(const AttrList *base_attrlist, > StringList &internal_references, > StringList &external_references) const; > friend class ExprTree; > friend class AttrList; > friend class AggOp; > > protected : > virtual int _EvalTree(const AttrList*, EvalResult*); > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*); > > ExprTree* lArg; > ExprTree* rArg; >}; > >class AddOpBase : public BinaryOpBase >{ > public : > AddOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class SubOpBase : public BinaryOpBase >{ > public : > SubOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class MultOpBase : public BinaryOpBase >{ > public : > MultOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class DivOpBase : public BinaryOpBase >{ > public : > DivOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class MetaEqOpBase : public BinaryOpBase >{ > public : > MetaEqOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class MetaNeqOpBase : public BinaryOpBase >{ > public : > MetaNeqOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class EqOpBase : public BinaryOpBase >{ > public : > EqOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class NeqOpBase : public BinaryOpBase >{ > public : > NeqOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class GtOpBase : public BinaryOpBase >{ > public : > GtOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class GeOpBase : public BinaryOpBase >{ > public : > GeOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class LtOpBase : public BinaryOpBase >{ > public : > LtOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class LeOpBase : public BinaryOpBase >{ > public : > LeOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class AndOpBase : public BinaryOpBase >{ > public : > AndOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class OrOpBase : public BinaryOpBase >{ > public : > OrOpBase(ExprTree*, ExprTree*); > virtual void Display(); >}; > >class AssignOpBase : public BinaryOpBase >{ > public : > AssignOpBase(ExprTree*, ExprTree*); > virtual void Display(); > virtual void GetReferences(const AttrList *base_attlrlist, > StringList &internal_references, > StringList &external_references) const; >}; > >class FunctionBase : public ExprTree >{ > public : > > FunctionBase(char *); > virtual ~FunctionBase(); > virtual int operator==(ExprTree&); > > virtual void GetReferences(const AttrList *base_attrlist, > StringList &internal_references, > StringList &external_references) const; > friend class ExprTree; > friend class AttrList; > > void AppendArgument(ExprTree *argument); > > void EvaluateArgument(ExprTree *arg, const AttrList *attrlist1, > const AttrList *attrlist2, EvalResult *result) const; > > protected : > > List<ExprTree> arguments; > > > int stringSpaceIndex; > > char* name; >}; ># 67 "../condor_includes/condor_ast.h" 2 > > > > > > >class EvalResult >{ > public : > > EvalResult(); > ~EvalResult(); > > > EvalResult(const EvalResult & copyfrom); > > EvalResult & operator=(const EvalResult & rhs); > > void fPrintResult(FILE *); > > union > { > int i; > float f; > char* s; > }; > LexemeType type; > > private : > void deepcopy(const EvalResult & copyfrom); >}; > >class Variable : public VariableBase >{ > public : > > Variable(char*a_name) : VariableBase(a_name) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree* DeepCopy(void) const; > > protected: > > virtual int _EvalTree(const class AttrList*, EvalResult*); > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*); > virtual int _EvalTreeRecursive(const char *name, const AttrList*, const AttrList*, EvalResult*, bool); > virtual int _EvalTreeSimple(const char *name, const AttrList*, const AttrList*, EvalResult*, bool); >}; > >class Integer : public IntegerBase >{ > public : > > Integer(int i) : IntegerBase(i) {} > > virtual int operator >(ExprTree&); > virtual int operator >=(ExprTree&); > virtual int operator <(ExprTree&); > virtual int operator <=(ExprTree&); > > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree* DeepCopy(void) const; > > protected: > > virtual int _EvalTree(const AttrList*, EvalResult*); > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*); >}; > > >class Float: public FloatBase >{ > public : > > Float(float f) : FloatBase(f) {} > > virtual int operator >(ExprTree&); > virtual int operator >=(ExprTree&); > virtual int operator <(ExprTree&); > virtual int operator <=(ExprTree&); > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree* DeepCopy(void) const; > > protected: > > virtual int _EvalTree(const AttrList*, EvalResult*); > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*); >}; > > >class String : public StringBase >{ > public : > > String(char* s) : StringBase(s) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree* DeepCopy(void) const; > > protected: > > virtual int _EvalTree(const AttrList*, EvalResult*); > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*); >}; > > >class ISOTime : public ISOTimeBase >{ > public : > > ISOTime(char* s) : ISOTimeBase(s) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree* DeepCopy(void) const; > > protected: > > virtual int _EvalTree(const AttrList*, EvalResult*); > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*); >}; > >class ClassadBoolean : public BooleanBase >{ > public : > > ClassadBoolean(int b) : BooleanBase(b) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree* DeepCopy(void) const; > > protected: > > virtual int _EvalTree(const AttrList*, EvalResult*); > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*); >}; > > >class Undefined : public UndefinedBase >{ > public : > > Undefined() : UndefinedBase() {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree* DeepCopy(void) const; > > protected: > > virtual int _EvalTree(const AttrList*, EvalResult*); > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*); >}; > >class Error : public ErrorBase >{ > public : > > Error() : ErrorBase() {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree* DeepCopy(void) const; > > protected: > > virtual int _EvalTree(const AttrList*, EvalResult*); > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*); >}; > >class BinaryOp: public BinaryOpBase >{ > public : >}; > >class AddOp: public AddOpBase >{ > public : > AddOp(ExprTree* l, ExprTree* r) : AddOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > > >class SubOp: public SubOpBase >{ > public : > SubOp(ExprTree* l, ExprTree* r) : SubOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > > >class MultOp: public MultOpBase >{ > public : > MultOp(ExprTree* l, ExprTree* r) : MultOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > > >class DivOp: public DivOpBase >{ > public : > DivOp(ExprTree* l, ExprTree* r) : DivOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > > >class MetaEqOp: public MetaEqOpBase >{ > public : > MetaEqOp(ExprTree* l, ExprTree* r) : MetaEqOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > > >class MetaNeqOp: public MetaNeqOpBase >{ > public : > MetaNeqOp(ExprTree* l, ExprTree* r) : MetaNeqOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > >class EqOp: public EqOpBase >{ > public : > EqOp(ExprTree* l, ExprTree* r) : EqOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > > >class NeqOp: public NeqOpBase >{ > public : > NeqOp(ExprTree* l, ExprTree* r) : NeqOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > > >class GtOp: public GtOpBase >{ > public : > GtOp(ExprTree* l, ExprTree* r) : GtOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > > >class GeOp: public GeOpBase >{ > public : > GeOp(ExprTree* l, ExprTree* r) : GeOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > > >class LtOp: public LtOpBase >{ > public : > LtOp(ExprTree* l, ExprTree* r) : LtOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > > >class LeOp: public LeOpBase >{ > public : > LeOp(ExprTree* l, ExprTree* r) : LeOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > >class AndOp: public AndOpBase >{ > public : > AndOp(ExprTree* l, ExprTree* r) : AndOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; >}; > > >class OrOp : public OrOpBase >{ > public : > OrOp(ExprTree* l, ExprTree* r) : OrOpBase(l, r) {} > virtual void PrintToStr(char*); > virtual int CalcPrintToStr(void); > virtual ExprTree *DeepCopy(void) const; >}; > >class AssignOp: public AssignOpBase >{ > public : > AssignOp(ExprTree* l, ExprTree* r) : AssignOpBase(l, r) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; > friend class AttrList; >}; > >class Function: public FunctionBase >{ > public: > Function(char*a_name) : FunctionBase(a_name) {} > virtual int CalcPrintToStr(void); > virtual void PrintToStr(char*); > virtual ExprTree *DeepCopy(void) const; > > virtual int _EvalTree(const AttrList*, EvalResult*); > virtual int _EvalTree(const AttrList*, const AttrList*, EvalResult*); > > int EvaluateArgumentToString(ExprTree *arg, const AttrList *attrlist1, > const AttrList *attrlist2, EvalResult *result) const; > > int FunctionScript(int number_of_arguments, EvalResult *arguments, > EvalResult *result); > > int FunctionSharedLibrary(int number_of_arguments, EvalResult *arguments, > EvalResult *result); > > int FunctionGetTime(int number_of_arguments, EvalResult *arguments, > EvalResult *result); > int FunctionTime(int number_of_arguments, EvalResult *arguments, > EvalResult *result); > int FunctionInterval(int number_of_arguments, EvalResult *arguments, > EvalResult *result); > int FunctionRandom(int number_of_arguments, EvalResult *arguments, > EvalResult *result); > int FunctionIsUndefined(int number_of_args, EvalResult *arguments, > EvalResult *result); > int FunctionIsError(int number_of_args, EvalResult *arguments, > EvalResult *result); > int FunctionIsString(int number_of_args, EvalResult *arguments, > EvalResult *result); > int FunctionIsInteger(int number_of_args, EvalResult *arguments, > EvalResult *result); > int FunctionIsReal(int number_of_args, EvalResult *arguments, > EvalResult *result); > int FunctionIsBoolean(int number_of_args, EvalResult *arguments, > EvalResult *result); > int FunctionIfThenElse(const AttrList *attrlist1, > const AttrList *attrlist2, EvalResult *result); > int FunctionClassadDebugFunction(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionString(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionReal(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionInt(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionFloor(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionRound(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionCeiling(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionStrcat(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionSubstr(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionStrcmp(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionStricmp(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionToUpper(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionToLower(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionSize(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionStringlistSize(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionStringlistSum(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionStringlistAvg(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionStringlistMin(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionStringlistMax(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionStringlistMember(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionStringlistIMember(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionStringlistRegexpMember(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionRegexp(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); > int FunctionRegexps(int number_of_args, EvalResult *evaluated_args, > EvalResult *result); >}; ># 31 "../condor_includes/condor_classad.h" 2 ># 1 "../condor_includes/condor_attrlist.h" 1 ># 32 "../condor_includes/condor_attrlist.h" ># 1 "../condor_includes/condor_debug.h" 1 ># 33 "../condor_includes/condor_attrlist.h" 2 ># 1 "../condor_c++_util/MyString.h" 1 ># 34 "../condor_includes/condor_attrlist.h" 2 > > ># 1 "../condor_c++_util/list.h" 1 ># 37 "../condor_includes/condor_attrlist.h" 2 > > > >template <class Key, class Value> class HashTable; >class YourString; > >enum >{ > ATTRLISTENTITY, > ATTRLISTREP >}; >enum {AGG_INSERT, AGG_REMOVE}; > >class AttrListElem >{ > public : > > AttrListElem(ExprTree*); > AttrListElem(AttrListElem&); > ~AttrListElem() > { > if (tree != __null) { > delete tree; > tree = __null; > } > } > > bool IsDirty(void) { return dirty; } > void SetDirty(bool new_dirty) { dirty = new_dirty; return; } > > friend class AttrList; > friend class ClassAd; > friend class AttrListList; > > private : > > ExprTree* tree; > bool dirty; > char* name; > class AttrListElem* next; >}; > > >struct ChainedPair { > AttrListElem **exprList; > HashTable<YourString, AttrListElem *> *exprHash; >}; > >class AttrListAbstract >{ > public : > > int Type() { return type; } > > friend class AttrList; > friend class AttrListList; > friend class ClassAd; > friend class ClassAdList; > > protected : > > AttrListAbstract(int); > virtual ~AttrListAbstract() {} > > int type; > class AttrListList* inList; > class AttrListAbstract* next; > class AttrListAbstract* prev; >}; > >class AttrListRep: public AttrListAbstract >{ > public: > > AttrListRep(AttrList*, AttrListList*); > > const AttrList* GetOrigAttrList() { return attrList; } > > friend class AttrList; > friend class AttrListList; > > private: > > AttrList* attrList; > AttrListRep* nextRep; >}; > >class AttrList : public AttrListAbstract >{ > public : > void ChainToAd( AttrList * ); > ChainedPair unchain( void ); > void RestoreChain(const ChainedPair &p); > void ChainCollapse(bool with_deep_copy = true); > > > AttrList(); > AttrList(AttrListList*); > AttrList(FILE*,char*,int&,int&,int&); > > > AttrList(char *, char); > AttrList(AttrList&); > virtual ~AttrList(); > > AttrList& operator=(const AttrList& other); > > > int Insert(const char*, > bool check_for_dups=true); > > int Insert(ExprTree*, > bool check_for_dups=true); > > int InsertOrUpdate(const char *expr) { return Insert(expr); } > > > > > > > int AssignExpr(char const *variable,char const *value); > int Assign(char const *variable, MyString &value); > int Assign(char const *variable,char const *value); > int Assign(char const *variable,int value); > int Assign(char const *variable,float value); > int Assign(char const *variable,double value); > int Assign(char const *variable,bool value); ># 176 "../condor_includes/condor_attrlist.h" > bool SetInvisible(char const *name,bool make_invisible=true); > > > > bool GetInvisible(char const *name); > > > > > > static bool ClassAdAttributeIsPrivate( char const *name ); > > > > > void SetPrivateAttributesInvisible(bool make_invisible); > > > int Delete(const char*); > > > void SetDirtyFlag(const char *name, bool dirty); > void GetDirtyFlag(const char *name, bool *exists, bool *dirty); > void ClearAllDirtyFlags(); > > > > > > > > void ResetExpr() { this->ptrExpr = exprList; this->ptrExprInChain = false; } > ExprTree* NextExpr(); > ExprTree* NextDirtyExpr(); > > > void ResetName() { this->ptrName = exprList; this->ptrNameInChain = false; } > char* NextName(); > const char* NextNameOriginal(); > char* NextDirtyName(); > > > ExprTree* Lookup(char *) const; > ExprTree* Lookup(const char*) const; > ExprTree* Lookup(const ExprTree*) const; > AttrListElem *LookupElem(const char *name) const; > int LookupString(const char *, char *) const; > int LookupString(const char *, char *, int) const; > int LookupString (const char *name, char **value) const; > int LookupString (const char *name, MyString & value) const; > int LookupTime(const char *name, char **value) const; > int LookupTime(const char *name, struct tm *time, bool *is_utc) const; > int LookupInteger(const char *, int &) const; > int LookupFloat(const char *, float &) const; > int LookupBool(const char *, int &) const; > bool LookupBool(const char *, bool &) const; > > > int EvalString (const char *, const class AttrList *, char *) const; > int EvalString (const char *, const class AttrList *, char **value) const; > int EvalString (const char *, const class AttrList *, MyString & value) const; > int EvalInteger (const char *, const class AttrList *, int &) const; > int EvalFloat (const char *, const class AttrList *, float &) const; > int EvalBool (const char *, const class AttrList *, int &) const; > > int IsInList(AttrListList*); > > > int fPrintExpr(FILE*, char*); > char* sPrintExpr(char*, unsigned int, const char*); > virtual int fPrint(FILE*); > int sPrint(MyString &output); > void dPrint( int ); > > > > > > int put(Stream& s); > int initFromStream(Stream& s); > > void clear( void ); > > > > > > void GetReferences(const char *attribute, > StringList &internal_references, > StringList &external_references) const; > > > > bool GetExprReferences(const char *expr, > StringList &internal_references, > StringList &external_references) const; > bool IsExternalReference(const char *name, char **simplified_name) const; > > > > > > > friend class AttrListRep; > friend class AttrListList; > friend class ClassAd; > > protected : > AttrListElem** chainedAttrs; > > > > int UpdateAgg(ExprTree*, int); > > > ExprTree* ProcToTree(char*, LexemeType, int, float, char*); > AttrListElem* exprList; > AttrListList* associatedList; > AttrListElem* tail; > AttrListElem* ptrExpr; > bool ptrExprInChain; > AttrListElem* ptrName; > bool ptrNameInChain; > int seq; > > HashTable<YourString, AttrListElem *> *hash; > HashTable<YourString, AttrListElem *> *chained_hash; > >private: > bool inside_insert; >}; > >class AttrListList >{ > public: > > AttrListList(); > AttrListList(AttrListList&); > virtual ~AttrListList(); > > void Open(); > void Close(); > AttrList* Next(); > ExprTree* Lookup(const char*, AttrList*&); > ExprTree* Lookup(const char*); > > void Insert(AttrList*); > int Delete(AttrList*); > > void fPrintAttrListList(FILE *, bool use_xml = false); > int MyLength() { return length; } > ExprTree* BuildAgg(char*, LexemeType); > > friend class AttrList; > friend class ClassAd; > > protected: > > > void UpdateAgg(ExprTree*, int); > > AttrListAbstract* head; > AttrListAbstract* tail; > AttrListAbstract* ptr; > class AttrListList* associatedAttrLists; > int length; >}; ># 32 "../condor_includes/condor_classad.h" 2 ># 1 "../condor_includes/condor_parser.h" 1 ># 35 "../condor_includes/condor_parser.h" >int Parse(const char*, ExprTree*&); > > >int ParseClassAdRvalExpr(const char*, ExprTree*&); ># 33 "../condor_includes/condor_classad.h" 2 > > > > > > >struct AdType >{ > int number; > char* name; > > AdType(const char * = __null); > ~AdType(); >}; > > >class ClassAd : public AttrList >{ > public : > > ClassAd(); > > > ClassAd(FILE*,char*,int&,int&,int&); > ClassAd(char *, char); > ClassAd(const ClassAd&); > virtual ~ClassAd(); > > ClassAd& operator=(const ClassAd& other); > > > void SetMyTypeName(const char *); > const char* GetMyTypeName(); > void SetTargetTypeName(const char *); > const char* GetTargetTypeName(); > int GetMyTypeNumber(); > int GetTargetTypeNumber(); > > > > > > > ExprTree *GetRequirements(void); > > > > > > > ExprTree *GetRankExpr(void); > > > void SetSequenceNumber(int); > int GetSequenceNumber(void); > > > int IsAMatch(class ClassAd*); > friend bool operator==(class ClassAd&,class ClassAd&); > friend bool operator>=(class ClassAd&,class ClassAd&); > friend bool operator<=(class ClassAd&,class ClassAd&); > > > int put(Stream& s); > int initFromStream(Stream& s); ># 106 "../condor_includes/condor_classad.h" > class ClassAd* FindNext(); ># 118 "../condor_includes/condor_classad.h" > virtual int fPrint(FILE*); > int fPrintAsXML(FILE* F); > int sPrint(MyString &output); > int sPrintAsXML(MyString &output); > void dPrint( int ); > > void clear( void ); > > > void ExchangeExpressions (class ClassAd *); > > private : > > AdType* myType; > AdType* targetType; > >}; > >typedef int (*SortFunctionType)(AttrList*,AttrList*,void*); > >class ClassAdList : public AttrListList >{ > public: > ClassAdList() : AttrListList() {} > > ClassAd* Next() { return (ClassAd*)AttrListList::Next(); } > void Rewind() { AttrListList::Open(); } > int Length() { return AttrListList::MyLength(); } > void Insert(ClassAd* ca) { AttrListList::Insert((AttrList*)ca); } > int Delete(ClassAd* ca){return AttrListList::Delete((AttrList*)ca);} > ClassAd* Lookup(const char* name); > > > > > > void Sort(SortFunctionType,void* =__null); > > > int Count( ExprTree *constraint ); > > private: > void Sort(SortFunctionType,void*,AttrListAbstract*&); > static int SortCompare(const void*, const void*); >}; ># 33 "../condor_daemon_client/daemon.h" 2 ># 1 "../condor_includes/condor_collector.h" 1 ># 24 "../condor_includes/condor_collector.h" >enum AdTypes >{ > QUILL_AD, > STARTD_AD, > SCHEDD_AD, > MASTER_AD, > GATEWAY_AD, > CKPT_SRVR_AD, > STARTD_PVT_AD, > SUBMITTOR_AD, > COLLECTOR_AD, > LICENSE_AD, > STORAGE_AD, > ANY_AD, > NUM_AD_TYPES, > CLUSTER_AD, > NEGOTIATOR_AD, > HAD_AD, > GENERIC_AD, > CREDD_AD, > DATABASE_AD, > DBMSD_AD, > TT_AD >}; > ># 1 "../condor_includes/condor_commands.h" 1 ># 214 "../condor_includes/condor_commands.h" >const int UPDATE_STARTD_AD = 0; >const int UPDATE_SCHEDD_AD = 1; >const int UPDATE_MASTER_AD = 2; >const int UPDATE_GATEWAY_AD = 3; >const int UPDATE_CKPT_SRVR_AD = 4; > >const int QUERY_STARTD_ADS = 5; >const int QUERY_SCHEDD_ADS = 6; >const int QUERY_MASTER_ADS = 7; >const int QUERY_GATEWAY_ADS = 8; >const int QUERY_CKPT_SRVR_ADS = 9; >const int QUERY_STARTD_PVT_ADS = 10; > >const int UPDATE_SUBMITTOR_AD = 11; >const int QUERY_SUBMITTOR_ADS = 12; > >const int INVALIDATE_STARTD_ADS = 13; >const int INVALIDATE_SCHEDD_ADS = 14; >const int INVALIDATE_MASTER_ADS = 15; >const int INVALIDATE_GATEWAY_ADS = 16; >const int INVALIDATE_CKPT_SRVR_ADS = 17; >const int INVALIDATE_SUBMITTOR_ADS = 18; > >const int UPDATE_COLLECTOR_AD = 19; >const int QUERY_COLLECTOR_ADS = 20; >const int INVALIDATE_COLLECTOR_ADS = 21; > >const int QUERY_HIST_STARTD = 22; >const int QUERY_HIST_STARTD_LIST = 23; >const int QUERY_HIST_SUBMITTOR = 24; >const int QUERY_HIST_SUBMITTOR_LIST = 25; >const int QUERY_HIST_GROUPS = 26; >const int QUERY_HIST_GROUPS_LIST = 27; >const int QUERY_HIST_SUBMITTORGROUPS = 28; >const int QUERY_HIST_SUBMITTORGROUPS_LIST = 29; >const int QUERY_HIST_CKPTSRVR = 30; >const int QUERY_HIST_CKPTSRVR_LIST = 31; > >const int UPDATE_LICENSE_AD = 42; >const int QUERY_LICENSE_ADS = 43; >const int INVALIDATE_LICENSE_ADS = 44; > >const int UPDATE_STORAGE_AD = 45; >const int QUERY_STORAGE_ADS = 46; >const int INVALIDATE_STORAGE_ADS = 47; > >const int QUERY_ANY_ADS = 48; > >const int UPDATE_NEGOTIATOR_AD = 49; >const int QUERY_NEGOTIATOR_ADS = 50; >const int INVALIDATE_NEGOTIATOR_ADS = 51; > >const int UPDATE_QUILL_AD = 52; >const int QUERY_QUILL_ADS = 53; >const int INVALIDATE_QUILL_ADS = 54; > >const int UPDATE_HAD_AD = 55; >const int QUERY_HAD_ADS = 56; >const int INVALIDATE_HAD_ADS = 57; > >const int UPDATE_AD_GENERIC = 58; >const int INVALIDATE_ADS_GENERIC = 59; ># 50 "../condor_includes/condor_collector.h" 2 ># 34 "../condor_daemon_client/daemon.h" 2 ># 1 "../condor_includes/condor_secman.h" 1 ># 37 "../condor_includes/condor_secman.h" ># 1 "../condor_includes/KeyCache.h" 1 ># 25 "../condor_includes/KeyCache.h" ># 1 "../condor_includes/condor_classad.h" 1 ># 26 "../condor_includes/KeyCache.h" 2 > ># 1 "../condor_c++_util/MyString.h" 1 ># 28 "../condor_includes/KeyCache.h" 2 ># 1 "../condor_c++_util/HashTable.h" 1 ># 24 "../condor_c++_util/HashTable.h" ># 1 "../condor_includes/condor_debug.h" 1 ># 25 "../condor_c++_util/HashTable.h" 2 ># 1 "../condor_c++_util/MyString.h" 1 ># 26 "../condor_c++_util/HashTable.h" 2 > > > >template <class Index, class Value> >class HashBucket { > public: > Index index; > Value value; > HashBucket<Index, Value> *next; >}; > > > > > >typedef enum { > allowDuplicateKeys, > rejectDuplicateKeys, > updateDuplicateKeys, >} duplicateKeyBehavior_t; > > > >template <class Index, class Value> >class HashTable { > public: > > > HashTable( int tableSize, > unsigned int (*hashfcn)( const Index &index ), > duplicateKeyBehavior_t behavior = allowDuplicateKeys ); > > > > HashTable( unsigned int (*hashfcn)( const Index &index )); > void initialize( unsigned int (*hashfcn)( const Index &index ), > duplicateKeyBehavior_t behavior ); > HashTable( const HashTable ©); > const HashTable& operator=(const HashTable ©); > ~HashTable(); > > int insert(const Index &index, const Value &value); > > > > > int lookup(const Index &index, Value &value) const; > int lookup(const Index &index, Value* &value) const; > int getNext(Index &index, void *current, Value &value, > void *&next) const; > int remove(const Index &index); > int getNumElements( ) const { return numElems; } > int getTableSize( ) const { return tableSize; } > int clear(); > > void startIterations (void); > int iterate (Value &value); > int getCurrentKey (Index &index); > int iterate (Index &index, Value &value); ># 94 "../condor_c++_util/HashTable.h" > int walk( int (*walkfunc) ( Value value ) ); > > > private: > > void copy_deep(const HashTable<Index, Value> ©); > > > > int needs_resizing(); > > > > void resize_hash_table(int newsize = -1); > > > > > int addItem(const Index &index, const Value &value); > > > > > int tableSize; > HashBucket<Index, Value> **ht; > unsigned int (*hashfcn)(const Index &index); > double maxLoadFactor; > duplicateKeyBehavior_t duplicateKeyBehavior; > int currentBucket; > HashBucket<Index, Value> *currentItem; > int numElems; >}; > > > > >template <class Index, class Value> >HashTable<Index,Value>::HashTable( int , > unsigned int (*hashF)( const Index &index ), > duplicateKeyBehavior_t behavior ) { > initialize(hashF, behavior); >} > >template <class Index, class Value> >HashTable<Index,Value>::HashTable( unsigned int (*hashF)( const Index &index )) { > initialize(hashF, rejectDuplicateKeys); >} > > > > > > > >template <class Index, class Value> >void HashTable<Index,Value>::initialize( unsigned int (*hashF)( const Index &index ), > duplicateKeyBehavior_t behavior ) { > int i; > > hashfcn = hashF; > > maxLoadFactor = 0.8; > > > > > if( !(hashfcn != 0) ) { _EXCEPT_Line = 160; _EXCEPT_File = "../condor_c++_util/HashTable.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","hashfcn != 0"); }; > > > > > tableSize = 7; > > if (!(ht = new HashBucket<Index, Value>* [tableSize])) { > _EXCEPT_Line = 168; _EXCEPT_File = "../condor_c++_util/HashTable.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Insufficient memory for hash table"); > } > for(i = 0; i < tableSize; i++) { > ht[i] = __null; > } > currentBucket = -1; > currentItem = 0; > numElems = 0; > duplicateKeyBehavior = behavior; >} > > > >template <class Index, class Value> >HashTable<Index,Value>::HashTable( const HashTable<Index,Value>& copy ) { > copy_deep(copy); >} > > > >template <class Index, class Value> >const HashTable<Index,Value>& HashTable<Index,Value>::operator=( const HashTable<Index,Value>& copy ) { > > if (this != ©) { > clear(); > delete [] ht; > copy_deep(copy); > } > > > return *this; >} > > > >template <class Index, class Value> >void HashTable<Index,Value>::copy_deep( const HashTable<Index,Value>& copy ) { > > > tableSize = copy.tableSize; > > if (!(ht = new HashBucket<Index, Value>* [tableSize])) { > _EXCEPT_Line = 210; _EXCEPT_File = "../condor_c++_util/HashTable.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Insufficient memory for hash table"); > } > for(int i = 0; i < tableSize; i++) { > > HashBucket<Index, Value> **our_next = &ht[i]; > HashBucket<Index, Value> *copy_next = copy.ht[i]; > while (copy_next) { > > *our_next = new HashBucket<Index, Value>(*copy_next); > > > > if (copy_next == copy.currentItem) { > currentItem = *our_next; > } > > > our_next = &((*our_next)->next); > copy_next = copy_next->next; > } > > > *our_next = __null; > > } > > > currentBucket = copy.currentBucket; > numElems = copy.numElems; > hashfcn = copy.hashfcn; > duplicateKeyBehavior = copy.duplicateKeyBehavior; >} > > > > > >template <class Index, class Value> >int HashTable<Index,Value>::insert(const Index &index,const Value &value) >{ > int idx = (int)(hashfcn(index) % tableSize); > > HashBucket<Index, Value> *bucket; > > > > > if ( duplicateKeyBehavior == rejectDuplicateKeys ) { > bucket = ht[idx]; > while (bucket) { > if (bucket->index == index) { > > return -1; > } > bucket = bucket->next; > } > } > > > > > else if( duplicateKeyBehavior == updateDuplicateKeys ) { > > bucket = ht[idx]; > while( bucket ) { > if( bucket->index == index ) { > bucket->value = value; > return 0; > } > bucket = bucket->next; > } > } > > addItem(index, value); > return 0; >} > >template <class Index, class Value> >int HashTable<Index,Value>::addItem(const Index &index,const Value &value) { > int idx = (int)(hashfcn(index) % tableSize); > > HashBucket<Index, Value> *bucket; > > > > > if (!(bucket = new HashBucket<Index, Value>)) { > _EXCEPT_Line = 297; _EXCEPT_File = "../condor_c++_util/HashTable.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Insufficient memory"); > } > > bucket->index = index; > bucket->value = value; > bucket->next = ht[idx]; > ht[idx] = bucket; > > > > > > numElems++; > > if(needs_resizing()) { > resize_hash_table(); > } > return 0; >} > > > > >template <class Index, class Value> >int HashTable<Index,Value>::lookup(const Index &index, Value &value) const >{ > int idx = (int)(hashfcn(index) % tableSize); > > HashBucket<Index, Value> *bucket = ht[idx]; > while(bucket) { > > > > > if (bucket->index == index) { > value = bucket->value; > return 0; > } > bucket = bucket->next; > } > > > > > > return -1; >} > > > > >template <class Index, class Value> >int HashTable<Index,Value>::lookup(const Index &index, Value* &value ) const >{ > int idx = (int)(hashfcn(index) % tableSize); > > HashBucket<Index, Value> *bucket = ht[idx]; > while(bucket) { > > > > > if (bucket->index == index) { > value = (Value *) &(bucket->value); > return 0; > } > bucket = bucket->next; > } > > > > > > return -1; >} ># 381 "../condor_c++_util/HashTable.h" >template <class Index, class Value> >int HashTable<Index,Value>::getNext(Index &index, void *current, > Value &value, void *&next) const >{ > HashBucket<Index, Value> *bucket; > > if (!current) { > int idx = (int)(hashfcn(index) % tableSize); > bucket = ht[idx]; > } else { > bucket = (HashBucket<Index, Value> *)current; > bucket = bucket->next; > } > > while(bucket) { > if (bucket->index == index) { > value = bucket->value; > next = bucket; > return 0; > } > bucket = bucket->next; > } > > > > > > return -1; >} > > > > >template <class Index, class Value> >int HashTable<Index,Value>::remove(const Index &index) >{ > int idx = (int)(hashfcn(index) % tableSize); > > HashBucket<Index, Value> *bucket = ht[idx]; > HashBucket<Index, Value> *prevBuc = ht[idx]; > > while(bucket) > { > if (bucket->index == index) > { > if (bucket == ht[idx]) > { > ht[idx] = bucket->next; > > > > if (bucket == currentItem) > { > currentItem = 0; > currentBucket --; > } > } > else > { > prevBuc->next = bucket->next; > > > if (bucket == currentItem) > { > currentItem = prevBuc; > } > } > > delete bucket; > > > > > > numElems--; > return 0; > } > > prevBuc = bucket; > bucket = bucket->next; > } > > return -1; >} > > > >template <class Index, class Value> >int HashTable<Index,Value>::clear() >{ > for(int i = 0; i < tableSize; i++) { > HashBucket<Index, Value> *tmpBuf = ht[i]; > while(ht[i]) { > tmpBuf = ht[i]; > ht[i] = ht[i]->next; > delete tmpBuf; > } > } > > numElems = 0; > > return 0; >} > >template <class Index, class Value> >void HashTable<Index,Value>:: >startIterations (void) >{ > currentBucket = -1; > currentItem = 0; >} > > >template <class Index, class Value> >int HashTable<Index,Value>:: >iterate (Value &v) >{ > > if (currentItem) { > currentItem = currentItem->next; > > > if (currentItem) { > v = currentItem->value; > return 1; > } > } > > > > do { > currentBucket++; > if (currentBucket >= tableSize) { > > currentBucket = -1; > currentItem = 0; > > return 0; > } > currentItem = ht[currentBucket]; > } while ( !currentItem ); > > v = currentItem->value; > return 1; >} > >template <class Index, class Value> >int HashTable<Index,Value>:: >getCurrentKey (Index &index) >{ > if (!currentItem) return -1; > index = currentItem->index; > return 0; >} > > >template <class Index, class Value> >int HashTable<Index,Value>:: >iterate (Index &index, Value &v) >{ > > if (currentItem) { > currentItem = currentItem->next; > > > if (currentItem) { > index = currentItem->index; > v = currentItem->value; > return 1; > } > } > > > > do { > currentBucket++; > if (currentBucket >= tableSize) { > > currentBucket = -1; > currentItem = 0; > > return 0; > } > currentItem = ht[currentBucket]; > } while ( !currentItem ); > > index = currentItem->index; > v = currentItem->value; > return 1; >} > > >template <class Index, class Value> >int HashTable<Index,Value>::walk( int (*walkfunc) ( Value value ) ) >{ > HashBucket<Index,Value> *current; > int i; > > for( i=0; i<tableSize; i++ ) { > for( current=ht[i]; current; current=current->next ) { > if(!walkfunc( current->value )) return 0; > } > } > > return 1; >} > > > > > >template <class Index, class Value> >HashTable<Index,Value>::~HashTable() >{ > clear(); > delete [] ht; >} > > >template <class Index, class Value> >int HashTable<Index, Value>::needs_resizing() { > if(((double) numElems / (double) tableSize) >= maxLoadFactor) { > return 1; > } > return 0; >} > > >template <class Index, class Value> >void HashTable<Index, Value>::resize_hash_table(int newsize) { > if(newsize <= 0) { > > newsize = tableSize + 1; > newsize *= 2; > newsize--; > } > HashBucket<Index, Value> **htcopy; > if (!(htcopy = new HashBucket<Index, Value>* [newsize])) { > _EXCEPT_Line = 619; _EXCEPT_File = "../condor_c++_util/HashTable.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Insufficient memory for hash table resizing"); > } > int i; > for(i = 0; i < newsize; i++) { > htcopy[i] = __null; > } > > HashBucket<Index, Value> *temp = __null; > HashBucket<Index, Value> *cur= __null; > for( i=0; i<tableSize; i++ ) { > for( cur=ht[i]; cur; cur=temp ) { > int idx = (int)(hashfcn(cur->index) % newsize); > > > > temp = cur->next; > cur->next = htcopy[idx]; > htcopy[idx] = cur; > } > } > delete[] ht; > ht = htcopy; > currentItem = 0; > currentBucket = -1; > tableSize = newsize; >} ># 668 "../condor_c++_util/HashTable.h" >unsigned int hashFuncInt( const int& n ); > > >unsigned int hashFuncLong( const long& n ); > > >unsigned int hashFuncUInt( const unsigned int& n ); > > >unsigned int hashFuncJobIdStr( char* const & key ); > > >unsigned int hashFuncChars( char const *key ); > > >unsigned int hashFuncMyString( const MyString &key ); ># 29 "../condor_includes/KeyCache.h" 2 > > >class SecMan; >class KeyCacheEntry { > public: > KeyCacheEntry( > char * id, > struct sockaddr_in * addr, > KeyInfo * key, > ClassAd * policy, > int expiration > ); > KeyCacheEntry(const KeyCacheEntry ©); > ~KeyCacheEntry(); > > const KeyCacheEntry& operator=(const KeyCacheEntry &kc); > > char* id(); > struct sockaddr_in * addr(); > KeyInfo* key(); > ClassAd* policy(); > int expiration(); > > private: > > void delete_storage(); > void copy_storage(const KeyCacheEntry &); > > char * _id; > struct sockaddr_in * _addr; > KeyInfo* _key; > ClassAd* _policy; > int _expiration; >}; > > > >class KeyCache { > friend class SecMan; >public: > KeyCache(int nbuckets); > KeyCache(const KeyCache&); > ~KeyCache(); > const KeyCache& operator=(const KeyCache&); > > bool insert(KeyCacheEntry&); > bool lookup(const char *key_id, KeyCacheEntry*&); > bool remove(const char *key_id); > void expire(KeyCacheEntry*); > > StringList * getExpiredKeys(); > >private: > void copy_storage(const KeyCache &kc); > void delete_storage(); > > HashTable<MyString, KeyCacheEntry*> *key_table; >}; ># 38 "../condor_includes/condor_secman.h" 2 > > > >typedef void StartCommandCallbackType(bool success,Sock *sock,CondorError *errstack,void *misc_data); > >typedef enum { > StartCommandFailed = 0, > StartCommandSucceeded = 1, > StartCommandWouldBlock = 2, > StartCommandInProgress = 3 >}StartCommandResult; ># 59 "../condor_includes/condor_secman.h" >class SecMan { > >public: > > enum sec_req { > SEC_REQ_UNDEFINED = 0, SEC_REQ_INVALID = 1, > SEC_REQ_NEVER = 2, SEC_REQ_OPTIONAL = 3, > SEC_REQ_PREFERRED = 4, SEC_REQ_REQUIRED = 5 > }; > > enum sec_feat_act { > SEC_FEAT_ACT_UNDEFINED = 0, SEC_FEAT_ACT_INVALID = 1, > SEC_FEAT_ACT_FAIL = 2, > SEC_FEAT_ACT_YES = 3, SEC_FEAT_ACT_NO = 4 > }; > > > static char* sec_feat_act_rev[]; > static char* sec_req_rev[]; > > static KeyCache * session_cache; > static HashTable<MyString, MyString> * command_map; > static int sec_man_ref_count; > > > static HashTable<MyString, class SecManStartCommand *> *tcp_auth_in_progress; > > > SecMan(int numbuckets = 209); > SecMan(const SecMan &); > ~SecMan(); > const SecMan & operator=(const SecMan &); > > StartCommandResult startCommand( int cmd, Sock* sock, bool can_neg, CondorError* errstack, int subcmd, StartCommandCallbackType *callback_fn, void *misc_data, bool nonblocking); > > > > static int authenticate_sock(Sock *s,DCpermission perm, CondorError* errstack); > static int authenticate_sock(Sock *s,KeyInfo *&ki, DCpermission perm, CondorError* errstack); > > > > > > void invalidateAllCache(); > bool invalidateKey(const char * keyid); > bool invalidateHost(const char * sin); > void invalidateExpiredCache(); > bool invalidateByParentAndPid(const char * parent, int pid); > > void send_invalidate_packet ( char* sinful, char* sessid ); > > bool FillInSecurityPolicyAd( DCpermission auth_level, > ClassAd* ad, bool otherside_can_neg=true); > ClassAd * ReconcileSecurityPolicyAds(ClassAd &cli_ad, ClassAd &srv_ad); > bool ReconcileSecurityDependency (sec_req &a, sec_req &b); > SecMan::sec_feat_act ReconcileSecurityAttribute(const char* attr, ClassAd &cli_ad, ClassAd &srv_ad); > MyString ReconcileMethodLists( char * cli_methods, char * srv_methods ); > > > static void key_printf(int debug_levels, KeyInfo *k); > > static int getAuthBitmask ( const char * methods ); > static void getAuthenticationMethods( DCpermission perm, MyString *result ); > > static MyString getDefaultAuthenticationMethods(); > static MyString getDefaultCryptoMethods(); > static SecMan::sec_req sec_alpha_to_sec_req(char *b); > static SecMan::sec_feat_act sec_alpha_to_sec_feat_act(char *b); > static SecMan::sec_req sec_lookup_req( ClassAd &ad, const char* pname ); > static SecMan::sec_feat_act sec_lookup_feat_act( ClassAd &ad, const char* pname ); > > > > > > > > static char* getSecSetting( const char* fmt, DCpermissionHierarchy const &auth_level, MyString *param_name=__null, char const *check_subsystem=__null ); > > > > sec_req sec_req_param( const char* fmt, DCpermission auth_level, sec_req def ); > > bool sec_is_negotiable (sec_req r); > SecMan::sec_feat_act sec_req_to_feat_act (sec_req r); > > static int sec_char_to_auth_method( char* method ); > > bool sec_copy_attribute( ClassAd &dest, ClassAd &source, const char* attr ); > > bool set_parent_unique_id(const char *v); > char* my_parent_unique_id(); > char* my_unique_id(); > > private: > void remove_commands(KeyCacheEntry * keyEntry); > > static char* _my_unique_id; > static char* _my_parent_unique_id; > static bool _should_check_env_for_unique_id; > > friend class SecManStartCommand; >}; ># 35 "../condor_daemon_client/daemon.h" 2 ># 1 "../condor_includes/condor_network.h" 1 ># 44 "../condor_includes/condor_network.h" >extern "C" { > > > >int do_connect ( const char *host, const char *service, u_short port ); >int tcp_accept_timeout( int ConnectionSock, struct sockaddr *sinful, > int *len, int timeout ); > > > > > > >} ># 36 "../condor_daemon_client/daemon.h" 2 ># 1 "../condor_daemon_client/daemon_types.h" 1 ># 27 "../condor_daemon_client/daemon_types.h" >enum daemon_t { DT_NONE, DT_ANY, DT_MASTER, DT_SCHEDD, DT_STARTD, > DT_COLLECTOR, DT_NEGOTIATOR, DT_KBDD, > DT_DAGMAN, DT_VIEW_COLLECTOR, DT_CLUSTER, > DT_SHADOW, DT_STARTER, DT_CREDD, DT_STORK, DT_QUILL, > DT_TRANSFERD, > _dt_threshold_ }; > > >extern "C" { > > >const char* daemonString( daemon_t dt ); >daemon_t stringToDaemonType( char* name ); > > >} ># 37 "../condor_daemon_client/daemon.h" 2 ># 1 "../condor_includes/KeyCache.h" 1 ># 38 "../condor_daemon_client/daemon.h" 2 > ># 1 "../condor_c++_util/command_strings.h" 1 ># 25 "../condor_c++_util/command_strings.h" ># 1 "../condor_includes/condor_commands.h" 1 ># 26 "../condor_c++_util/command_strings.h" 2 ># 1 "../condor_c++_util/translation_utils.h" 1 ># 36 "../condor_c++_util/translation_utils.h" >struct Translation { > const char *name; > int number; >}; > >const char* getNameFromNum( int num, const struct Translation *table ); >int getNumFromName( const char* str, const struct Translation *table ); ># 27 "../condor_c++_util/command_strings.h" 2 ># 41 "../condor_c++_util/command_strings.h" >const char* getCommandString( int ); > > >int getCommandNum( const char* ); > > >const char* getCollectorCommandString( int ); > > >int getCollectorCommandNum( const char* ); > > > >typedef enum { > CA_SUCCESS = 1, > CA_FAILURE, > CA_NOT_AUTHENTICATED, > CA_NOT_AUTHORIZED, > CA_INVALID_REQUEST, > CA_INVALID_STATE, > CA_INVALID_REPLY, > CA_LOCATE_FAILED, > CA_CONNECT_FAILED, > CA_COMMUNICATION_ERROR, >} CAResult; > >const char* getCAResultString( CAResult r ); >CAResult getCAResultNum( const char* str ); ># 40 "../condor_daemon_client/daemon.h" 2 ># 1 "../condor_daemon_client/dc_message.h" 1 ># 28 "../condor_daemon_client/dc_message.h" >class DCMessenger; >class DCMsg; > ># 1 "../condor_daemon_client/daemon.h" 1 ># 32 "../condor_daemon_client/dc_message.h" 2 ># 1 "../condor_c++_util/classy_counted_ptr.h" 1 ># 91 "../condor_c++_util/classy_counted_ptr.h" >class ClassyCountedPtr { >public: > ClassyCountedPtr() > : m_ref_count(0) {} > virtual ~ClassyCountedPtr() > {if( !(m_ref_count == 0) ) { _EXCEPT_Line = 96; _EXCEPT_File = "../condor_c++_util/classy_counted_ptr.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_ref_count == 0"); };} > > void incRefCount() {m_ref_count++;} > void decRefCount() { > if( !(m_ref_count > 0) ) { _EXCEPT_Line = 100; _EXCEPT_File = "../condor_c++_util/classy_counted_ptr.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_ref_count > 0"); }; > if( --m_ref_count == 0 ) { > delete this; > } > } > >private: > int m_ref_count; >}; > >template <class X> class classy_counted_ptr >{ >public: > typedef X element_type; > > classy_counted_ptr(X* p = 0) > : itsPtr(p) {if(p) p->incRefCount();} > ~classy_counted_ptr() > {if(itsPtr) itsPtr->decRefCount();} > classy_counted_ptr(const classy_counted_ptr& r) throw() > { > itsPtr = r.itsPtr; > if(itsPtr) itsPtr->incRefCount(); > } > classy_counted_ptr& operator=(const classy_counted_ptr& r) > { > if (this != &r) { > if(itsPtr) itsPtr->decRefCount(); > itsPtr = r.itsPtr; > if(itsPtr) itsPtr->incRefCount(); > } > return *this; > } > > > X& operator*() const throw() {return *itsPtr;} > X* operator->() const throw() {return itsPtr;} > X* get() const throw() {return itsPtr;} > bool unique() const throw() > {return (itsPtr ? itsPtr->refCount() == 1 : true);} ># 154 "../condor_c++_util/classy_counted_ptr.h" > int operator== (const classy_counted_ptr& r) > { > if ( itsPtr == r.itsPtr ) { > return 1; > } > if ( itsPtr && r.itsPtr ) > { > if ( *(itsPtr) == *(r.itsPtr) ) { > return 1; > } > } > return 0; > } > > int operator< (const classy_counted_ptr& r) > { > if ( itsPtr && r.itsPtr ) > { > if ( *(itsPtr) < *(r.itsPtr) ) { > return 1; > } > } > return 0; > } > >private: > > X *itsPtr; >}; ># 33 "../condor_daemon_client/dc_message.h" 2 > > >class DCMessenger; >class DCMsg; > > > > > > > >class DCMsg: public ClassyCountedPtr { >public: > DCMsg(int cmd); > virtual ~DCMsg(); > > enum MessageClosureEnum { > MESSAGE_FINISHED, > MESSAGE_CONTINUING > }; > > enum DeliveryStatus { > DELIVERY_PENDING, > DELIVERY_SUCCEEDED, > DELIVERY_FAILED > }; > > > > > virtual bool writeMsg( DCMessenger *messenger, Sock *sock ) = 0; > > > > > virtual bool readMsg( DCMessenger *messenger, Sock *sock ) = 0; > > > > > > virtual MessageClosureEnum messageSent( > DCMessenger *messenger, Sock *sock ); > > > > > > virtual MessageClosureEnum messageReceived( > DCMessenger *messenger, Sock *sock ); > > > > virtual void messageSendFailed( DCMessenger *messenger ); > > > > virtual void messageReceiveFailed( DCMessenger *messenger ); > > > virtual void reportSuccess( DCMessenger *messenger ); > > > virtual void reportFailure( DCMessenger *messenger ); > > > virtual char const *name(); > > > void setSuccessDebugLevel(int level) {m_msg_success_debug_level = level;} > > > void setFailureDebugLevel(int level) {m_msg_failure_debug_level = level;} > > > void addError( int code, char const *format, ... ); > > > void sockFailed( Sock *sock ); > > > DeliveryStatus deliveryStatus() {return m_delivery_status;} > > > void deliveryStatus(DeliveryStatus s) > {m_delivery_status = s;} > > friend class DCMessenger; >private: > int m_cmd; > int m_msg_success_debug_level; > int m_msg_failure_debug_level; > CondorError m_errstack; > DCMessenger *m_messenger_callback_ref; > DeliveryStatus m_delivery_status; > > void connectFailure( DCMessenger *messenger ); > > void callMessageSendFailed( DCMessenger *messenger ); > void callMessageReceiveFailed( DCMessenger *messenger ); > MessageClosureEnum callMessageSent( > DCMessenger *messenger, Sock *sock ); > MessageClosureEnum callMessageReceived( > DCMessenger *messenger, Sock *sock ); >}; > >class DCMessenger: public ClassyCountedPtr, public Service { >public: > > > > > > DCMessenger( classy_counted_ptr<Daemon> daemon ); > > > > > > > DCMessenger( Sock *sock ); > > ~DCMessenger(); > > > > > void startCommand( classy_counted_ptr<DCMsg> msg, Stream::stream_type st = Stream::reli_sock, int timeout = 0 ); > > > > void startCommandAfterDelay( unsigned int delay, classy_counted_ptr<DCMsg> msg, Stream::stream_type st = Stream::reli_sock, int timeout = 0 ); > > > > > > void sendBlockingMsg( classy_counted_ptr<DCMsg> msg, Stream::stream_type st = Stream::reli_sock, int timeout = 0 ); > > > > > > > > void startReceiveMsg( classy_counted_ptr<DCMsg> msg, Sock *sock ); > > > > > void writeMsg( classy_counted_ptr<DCMsg> msg, Sock *sock ); > > > > > void readMsg( classy_counted_ptr<DCMsg> msg, Sock *sock ); > > > char const *peerDescription(); > >private: > > static void connectCallback(bool success, Sock *sock, CondorError *errstack, void *misc_data); > > > int receiveMsgCallback(Stream *sock); > > > int startCommandAfterDelay_alarm(); > > > void doneWithSock(Stream *sock); > > classy_counted_ptr<Daemon> m_daemon; > Sock *m_sock; > > classy_counted_ptr<DCMsg> m_current_msg; >}; > > > > > > >class DCStringMsg: public DCMsg { >public: > DCStringMsg( int cmd, char const *str ); > > bool writeMsg( DCMessenger *messenger, Sock *sock ); > bool readMsg( DCMessenger *messenger, Sock *sock ); > >private: > MyString m_str; >}; ># 41 "../condor_daemon_client/daemon.h" 2 > >template <class p> class counted_ptr; ># 85 "../condor_daemon_client/daemon.h" >class Daemon: public ClassyCountedPtr { >public: ># 101 "../condor_daemon_client/daemon.h" > Daemon( daemon_t type, const char* name = __null, > const char* pool = __null ); > > > > > > > Daemon( const ClassAd* ad, daemon_t type, const char* pool ); > > > Daemon( const Daemon © ); > > > Daemon& operator = ( const Daemon& ); > > > virtual ~Daemon(); ># 130 "../condor_daemon_client/daemon.h" > virtual bool locate( void ); > > > > > > char* error( void ) { return _error; } > > > > > > > > CAResult errorCode( void ) { return _error_code; } ># 163 "../condor_daemon_client/daemon.h" > char* name( void ); > > > > > > > > char* hostname( void ); > > > > > > char* version( void ); > > > > > > char* platform( void ); ># 192 "../condor_daemon_client/daemon.h" > char* fullHostname( void ); ># 202 "../condor_daemon_client/daemon.h" > char* addr( void ); ># 212 "../condor_daemon_client/daemon.h" > char* pool( void ); > > > > > > > > int port( void ); > > > > > > > > daemon_t type( void ) { return _type; } > > > > > > bool isLocal( void ) { return _is_local; } > > > > > > > ClassAd *daemonAd() { return m_daemon_ad_ptr; } ># 250 "../condor_daemon_client/daemon.h" > const char* idStr( void ); > > > > > void display( int debugflag ); > > > > void display( FILE* fp ); ># 272 "../condor_daemon_client/daemon.h" > ReliSock* reliSock( int sec = 0, CondorError* errstack = 0, > bool non_blocking = false, > bool ignore_timeout_multiplier = false ); ># 283 "../condor_daemon_client/daemon.h" > SafeSock* safeSock( int sec = 0, CondorError* errstack = 0, > bool non_blocking = false ); > >public: ># 298 "../condor_daemon_client/daemon.h" > bool sendCommand( int cmd, > Stream::stream_type st = Stream::reli_sock, > int sec = 0, CondorError* errstack = __null ); ># 314 "../condor_daemon_client/daemon.h" > bool sendCommand( int cmd, Sock* sock, int sec = 0, CondorError* errstack = __null ); ># 330 "../condor_daemon_client/daemon.h" > Sock* startCommand( int cmd, > Stream::stream_type st = Stream::reli_sock, > int sec = 0, CondorError* errstack = __null ); ># 346 "../condor_daemon_client/daemon.h" > bool startCommand( int cmd, Sock* sock, > int sec = 0, CondorError* errstack = __null ); ># 377 "../condor_daemon_client/daemon.h" > StartCommandResult startCommand_nonblocking( int cmd, Stream::stream_type st, int timeout, CondorError *errstack, StartCommandCallbackType *callback_fn, void *misc_data ); ># 406 "../condor_daemon_client/daemon.h" > StartCommandResult startCommand_nonblocking( int cmd, Sock* sock, int timeout, CondorError *errstack, StartCommandCallbackType *callback_fn, void *misc_data ); ># 417 "../condor_daemon_client/daemon.h" > void sendMsg( classy_counted_ptr<DCMsg> msg, Stream::stream_type st=Stream::reli_sock, int timeout=0, bool blocking=false ); ># 430 "../condor_daemon_client/daemon.h" > bool getTimeOffset( long &offset ); ># 445 "../condor_daemon_client/daemon.h" > bool getTimeOffsetRange( long &min_range, long &max_range ); > >protected: > > > char* _name; > char* _hostname; > char* _full_hostname; > char* _addr; > char* _version; > char* _platform; > char* _pool; > char* _error; > CAResult _error_code; > char* _id_str; > char* _subsys; > int _port; > daemon_t _type; > bool _is_local; > bool _tried_locate; > bool _tried_init_hostname; > bool _tried_init_version; > bool _is_configured; > ClassAd *m_daemon_ad_ptr; > SecMan _sec_man; ># 479 "../condor_daemon_client/daemon.h" > void common_init(); > > > > > > void deepCopy( const Daemon& copy ); ># 495 "../condor_daemon_client/daemon.h" > bool getDaemonInfo( const char* subsys, AdTypes adtype, bool query_collector = true ); ># 511 "../condor_daemon_client/daemon.h" > bool getCmInfo( const char* subsys ); ># 521 "../condor_daemon_client/daemon.h" > bool initHostname( void ); > > > > > > bool initHostnameFromFull( void ); ># 537 "../condor_daemon_client/daemon.h" > bool initVersion( void ); > > > int getDefaultPort( void ); > > > > > > void newError( CAResult, const char* ); ># 555 "../condor_daemon_client/daemon.h" > char* localName( void ); > > > > > > > > bool readAddressFile( const char* subsys ); > > > > > > bool readLocalClassAd( const char* subsys ); ># 578 "../condor_daemon_client/daemon.h" > bool getInfoFromAd( const ClassAd* ad ); > bool getInfoFromAd( counted_ptr<class ClassAd>& ad ); ># 595 "../condor_daemon_client/daemon.h" > bool initStringFromAd( const ClassAd* ad, const char* attrname, > char** value_str ); > > bool initStringFromAd(counted_ptr<class ClassAd>& ad, const char* attrname, > char** value_str ); ># 611 "../condor_daemon_client/daemon.h" > char* New_full_hostname( char* ); > char* New_hostname( char* ); > char* New_name( char* ); > char* New_version( char* ); > char* New_platform( char* ); > char* New_addr( char* ); > char* New_pool( char* ); > > > > > > > void setCmdStr( const char* cmd ); > char* _cmd_str; ># 645 "../condor_daemon_client/daemon.h" > bool sendCACmd( ClassAd* req, ClassAd* reply, bool force_auth, > int timeout = -1 ); > > > > > > > > bool sendCACmd( ClassAd* req, ClassAd* reply, ReliSock* sock, > bool force_auth, int timeout = -1 ); ># 664 "../condor_daemon_client/daemon.h" > bool checkAddr( void ); > > > > > > bool forceAuthentication( ReliSock* rsock, CondorError* errstack ); > > > > > > > static StartCommandResult startCommand( int cmd, Sock* sock, int timeout, CondorError *errstack, StartCommandCallbackType *callback_fn, void *misc_data, bool nonblocking, char *version, SecMan *sec_man ); > > > > > > > > StartCommandResult startCommand( int cmd, Stream::stream_type st,Sock **sock,int timeout, CondorError *errstack, StartCommandCallbackType *callback_fn, void *misc_data, bool nonblocking ); > > > > > > friend struct StartCommandConnectCallback; >}; > > >char *global_dc_sinful( void ); > > > > > > >char* getCmHostFromConfig( const char * subsys ); ># 61 "daemon_core.C" 2 ># 1 "../condor_includes/reli_sock.h" 1 ># 62 "daemon_core.C" 2 ># 1 "condor_daemon_core.h" 1 ># 35 "condor_daemon_core.h" ># 1 "../condor_includes/condor_uid.h" 1 ># 36 "condor_daemon_core.h" 2 > > > ># 1 "condor_ipverify.h" 1 ># 40 "condor_daemon_core.h" 2 > > > > > > > ># 1 "../condor_c++_util/Queue.h" 1 ># 27 "../condor_c++_util/Queue.h" >template <class Value> >class Queue { > public: > typedef int (*QueueCompare)(Value lhs, Value rhs); > > Queue( int tableSize=32, QueueCompare fn_ptr = __null ); > ~Queue(); > > int enqueue(const Value& value); > int dequeue(Value& value); > int IsEmpty(); > int IsFull(); > int Length(); > void clear(); > bool IsMember(const Value& value); > > private: > int tableSize; > Value* ht; > int length; > int head,tail; > QueueCompare compare_func; >}; > > > >template <class Value> >Queue<Value>::Queue( int tableSz, QueueCompare fn_ptr ) >{ > if( tableSz > 0 ) { > tableSize = tableSz; > } else { > tableSize = 32; > } > ht = new Value[tableSize]; > length = 0; > head = tail = 0; > compare_func = fn_ptr; >} > > > >template <class Value> >Queue<Value>::~Queue() >{ > delete[] ht; >} > > > >template <class Value> >int Queue<Value>::enqueue(const Value& value) >{ > if (IsFull()) { > int new_tableSize = tableSize * 2; > Value * new_ht = new Value[new_tableSize]; > int i=0,j=0; > > > if (!new_ht) { > return -1; > } > > > ((head==tail) ? static_cast<void> (0) : __assert_fail ("head==tail", "../condor_c++_util/Queue.h", 91, __PRETTY_FUNCTION__)); > > > for (i = head; i < tableSize; i++ ) { > new_ht[j++] = ht[i]; > } > for (i = 0; i < head; i++ ) { > new_ht[j++] = ht[i]; > } > > delete [] ht; > ht = new_ht; > tail = 0; > head = length; > tableSize = new_tableSize; > } > > ht[head]=value; > head=(head+1)%tableSize; > length++; > return 0; >} > > > >template <class Value> >int Queue<Value>::dequeue(Value& value) >{ > if (IsEmpty()) return -1; > value=ht[tail]; > tail=(tail+1)%tableSize; > length--; > return 0; >} > > > >template <class Value> >int Queue<Value>::IsFull() >{ > return (length==tableSize); >} > > > >template <class Value> >int Queue<Value>::IsEmpty() >{ > return (length==0); >} > > > >template <class Value> >int Queue<Value>::Length() >{ > return length; >} > > > >template <class Value> >void Queue<Value>::clear() >{ > length = 0; > head=tail=0; >} > > > >template <class Value> >bool Queue<Value>::IsMember(const Value &value) >{ > int i, j; > j = tail; > for (i = 0; i < length; i++) { > if( compare_func ) { > if( compare_func(ht[j], value) == 0 ) { > return true; > } > } else { > if( ht[j] == value ) { > return true; > } > } > j = (j+1) % tableSize; > } > return false; >} ># 48 "condor_daemon_core.h" 2 > > > > ># 1 "self_monitor.h" 1 ># 25 "self_monitor.h" ># 1 "../condor_includes/condor_debug.h" 1 ># 26 "self_monitor.h" 2 ># 1 "../condor_c++_util/MyString.h" 1 ># 27 "self_monitor.h" 2 ># 36 "self_monitor.h" >class SelfMonitorData >{ >public: > SelfMonitorData(); > ~SelfMonitorData(); > > > void EnableMonitoring(void); > > void DisableMonitoring(void); > > > > void CollectData(void); > > > > bool ExportData(ClassAd *ad); > > > > > > > time_t last_sample_time; > > > double cpu_usage; > > unsigned long image_size; > > unsigned long rs_size; > > long age; > > int registered_socket_count; > >private: > int _timer_id; > bool _monitoring_is_on; >}; ># 53 "condor_daemon_core.h" 2 > ># 1 "../condor_includes/condor_pidenvid.h" 1 ># 76 "../condor_includes/condor_pidenvid.h" >enum { > > PIDENVID_OK, > > PIDENVID_NO_SPACE, > > > PIDENVID_OVERSIZED, > > PIDENVID_BAD_FORMAT >}; > > >enum { > PIDENVID_MATCH, > PIDENVID_NO_MATCH >}; > >typedef struct PidEnvIDEntry_s { > > > > int active; ># 109 "../condor_includes/condor_pidenvid.h" > char envid[(sizeof("_CONDOR_ANCESTOR_") + ((sizeof(pid_t) * 2) + (sizeof(pid_t) / 2) + 1) + 1 + ((sizeof(pid_t) * 2) + (sizeof(pid_t) / 2) + 1) + 1 + ((sizeof(time_t) * 2) + (sizeof(time_t) / 2)) + 1 + ((sizeof(unsigned int) * 2) + (sizeof(unsigned int) / 2)) + 0)]; > >} PidEnvIDEntry; > >typedef struct PidEnvID_s >{ > > int num; > PidEnvIDEntry ancestors[32]; > >} PidEnvID; > >extern "C" { > > >void pidenvid_init(PidEnvID *penvid); > > > > >int pidenvid_filter_and_insert(PidEnvID *penvid, char **env); > > >int pidenvid_format_to_envid(char *dest, int size, > pid_t forker_pid, pid_t forked_pid, time_t t, unsigned int mii); > > >int pidenvid_format_from_envid(char *src, > pid_t *forker_pid, pid_t *forked_pid, time_t *t, unsigned int *mii); > > >int pidenvid_append(PidEnvID *penvid, char *line); > > > >int pidenvid_append_direct(PidEnvID *penvid, > pid_t forker_pid, pid_t forked_pid, time_t t, unsigned int mii); > > >int pidenvid_match(PidEnvID *left, PidEnvID *right); > > >void pidenvid_copy(PidEnvID *to, PidEnvID *from); > > >void pidenvid_dump(PidEnvID *penvid, int dlvl); ># 164 "../condor_includes/condor_pidenvid.h" >void pidenvid_shuffle_to_front(char **env); > > > > > >void pidenvid_optimize_final_env(char **env); > >} ># 55 "condor_daemon_core.h" 2 ># 1 "../condor_c++_util/condor_arglist.h" 1 ># 81 "../condor_c++_util/condor_arglist.h" ># 1 "../condor_c++_util/MyString.h" 1 ># 82 "../condor_c++_util/condor_arglist.h" 2 > ># 1 "../condor_c++_util/condor_ver_info.h" 1 ># 29 "../condor_c++_util/condor_ver_info.h" >class CondorVersionInfo >{ >public: ># 42 "../condor_c++_util/condor_ver_info.h" > CondorVersionInfo(const char *versionstring = __null, > const char *subsystem = __null, const char *platformstring = __null); > > > ~CondorVersionInfo(); > > static char *get_version_from_file(const char* filename, > char *ver = __null, int maxlen = 0); > static char *get_platform_from_file(const char* filename, > char *platform = __null, int maxlen = 0); > > > > int getMajorVer() const > { return myversion.MajorVer > 5 ? myversion.MajorVer : -1; } > > > int getMinorVer() const > { return myversion.MajorVer > 5 ? myversion.MinorVer : -1; } > > > int getSubMinorVer() const > { return myversion.MajorVer > 5 ? myversion.SubMinorVer : -1; } > > > > char *getArchVer() const > { return myversion.Arch; } > char *getOpSysVer() const > { return myversion.OpSys; } > > > > > bool is_stable_series() const > { return (myversion.MinorVer % 2 == 0); } > > > int compare_versions(const char* other_version_string) const; > int compare_build_dates(const char* other_version_string) const; > > bool built_since_version(int MajorVer, int MinorVer, int SubMinorVer) const; > > > bool built_since_date(int month, int day, int year) const; > > bool is_compatible(const char* other_version_string, > const char* other_subsys = __null) const; > > bool is_valid(const char* VersionString = __null) const; > > typedef struct VersionData { > int MajorVer; > int MinorVer; > int SubMinorVer; > int Scalar; > time_t BuildDate; > char *Arch; > char *OpSys; > } VersionData_t; > > >private: > > VersionData_t myversion; > char *mysubsys; > > bool string_to_VersionData(const char *,VersionData_t &) const; > bool string_to_PlatformData(const char *,VersionData_t &) const; >}; ># 84 "../condor_c++_util/condor_arglist.h" 2 > > > > >bool split_args(char const *args,SimpleList<MyString> *args_list,MyString *error_msg=__null); > > > > >bool split_args(char const *args,char ***args_array,MyString *error_msg=__null); > > > >void join_args(SimpleList<MyString> const &args_list,MyString *result,int start_arg=0); > > > >void join_args(char const * const *args_array,MyString *result,int start_arg=0); > > > >void deleteStringArray( char **string_array ); > >class ArgList { > public: > ArgList(); > ~ArgList(); > > int Count() const; > void Clear(); > char const *GetArg(int n) const; > > void AppendArg(char const *arg); > void AppendArg(MyString arg); > void AppendArg(int arg); > void InsertArg(char const *arg,int position); > void RemoveArg(int position); > > void AppendArgsFromArgList(ArgList const &args); > > > > bool AppendArgsV1Raw(char const *args,MyString *error_msg); ># 139 "../condor_c++_util/condor_arglist.h" > bool AppendArgsV1RawOrV2Quoted(char const *args,MyString *error_msg); > > > > > > > > bool AppendArgsV1WackedOrV2Quoted(char const *args,MyString *error_msg); > > > > bool AppendArgsV2Raw(char const *args,MyString *error_msg); > > > > > > bool AppendArgsV2Quoted(char const *args,MyString *error_msg); > > > > > > > bool AppendArgsV1or2Raw(char const *args,MyString *error_msg); > > bool AppendArgsFromClassAd(ClassAd const *ad,MyString *error_msg); > bool InsertArgsIntoClassAd(ClassAd *ad,CondorVersionInfo *condor_version,MyString *error_string); > > > static bool CondorVersionRequiresV1(CondorVersionInfo const &condor_version); > > > static void GetArgsStringForDisplay(ClassAd const *ad,MyString *result); > > > void GetArgsStringForDisplay(MyString *result,int start_arg=0) const; > > > > char **GetStringArray() const; > > > > bool GetArgsStringV1Raw(MyString *result,MyString *error_msg) const; > > > > > bool GetArgsStringV2Raw(MyString *result,MyString *error_msg,int start_arg=0) const; > > > bool GetArgsStringV2Quoted(MyString *result,MyString *error_msg); > > > > > bool GetArgsStringV1WackedOrV2Quoted(MyString *result,MyString *error_msg); > > > > > bool GetArgsStringV1or2Raw(MyString *result,MyString *error_msg) const; > > > > > bool GetArgsStringV1or2Raw(ClassAd const *ad,MyString *result,MyString *error_msg); > > > bool GetArgsStringWin32(MyString *result,int skip_args,MyString *error_msg) const; > > bool InputWasV1() {return input_was_unknown_platform_v1;} > > > > > > > > static bool IsV2QuotedString(char const *str); > > > > > > static bool V2QuotedToV2Raw(char const *v2_quoted,MyString *v2_raw,MyString *errmsg); > > > > > static bool V1WackedToV1Raw(char const *v1_wacked,MyString *v1_raw,MyString *errmsg); > > > > static void V2RawToV2Quoted(MyString const &v2_raw,MyString *result); > > > > static void V1RawToV1Wacked(MyString const &v1_raw,MyString *result); > > > > static void AddErrorMessage(char const *msg,MyString *error_buffer); > > enum ArgV1Syntax { > UNKNOWN_ARGV1_SYNTAX, > WIN32_ARGV1_SYNTAX, > UNIX_ARGV1_SYNTAX > }; > > > > > > > void SetArgV1Syntax(ArgV1Syntax v1_syntax); > > > > > > > > void SetArgV1SyntaxToCurrentPlatform(); > > > bool AppendArgsV1Raw_win32(char const *args,MyString *error_msg); > > > bool AppendArgsV1Raw_unix(char const *args,MyString *error_msg); > > private: > SimpleList<MyString> args_list; > bool input_was_unknown_platform_v1; > ArgV1Syntax v1_syntax; > > bool IsSafeArgV1Value(char const *str) const; > >}; ># 56 "condor_daemon_core.h" 2 ># 1 "../condor_c++_util/env.h" 1 ># 67 "../condor_c++_util/env.h" ># 1 "../condor_c++_util/HashTable.h" 1 ># 68 "../condor_c++_util/env.h" 2 ># 1 "../condor_c++_util/MyString.h" 1 ># 69 "../condor_c++_util/env.h" 2 ># 1 "../condor_c++_util/condor_arglist.h" 1 ># 70 "../condor_c++_util/env.h" 2 > > > >class Env { > public: > Env(); > ~Env(); > > > int Count() const; > > > void Clear(); > > > > > bool MergeFromV1RawOrV2Quoted( const char *delimitedString, MyString *error_msg ); > > > > > bool MergeFromV2Quoted( const char *delimitedString, MyString *error_msg ); > > > > bool MergeFromV2Raw( const char *delimitedString, MyString *error_msg ); > > > > bool MergeFromV1Raw( const char *delimitedString, MyString *error_msg ); > > > > > > bool MergeFromV1or2Raw( const char *delimitedString, MyString *error_msg ); > > > > bool MergeFrom( char const * const *stringArray ); > > > > bool MergeFrom( char const * ); > > > > void MergeFrom( Env const &env ); > > > bool MergeFrom( const ClassAd *ad, MyString *error_msg ); > > > bool SetEnvWithErrorMessage( const char *nameValueExpr, MyString *error_msg ); > > > bool SetEnv( const char *nameValueExpr ) { > return SetEnvWithErrorMessage(nameValueExpr, __null); > } > > > bool SetEnv( const char *var, const char *val ); > > > bool SetEnv( const MyString &, const MyString & ); > > > > > bool InsertEnvIntoClassAd( ClassAd *ad, MyString *error_msg, char const *opsys=__null, CondorVersionInfo *condor_version=__null ) const; > > > static bool CondorVersionRequiresV1(CondorVersionInfo const &condor_version); > > > > > bool getDelimitedStringV2Raw(MyString *result,MyString *error_msg,bool mark_v2=false) const; > > > bool getDelimitedStringV1Raw(MyString *result,MyString *error_msg,char delim='\0') const; > > > > > > bool getDelimitedStringV1or2Raw(ClassAd const *ad,MyString *result,MyString *error_msg); > > > bool getDelimitedStringV1or2Raw(MyString *result,MyString *error_msg,char delim='\0') const; > > > bool getDelimitedStringV2Quoted(MyString *result,MyString *error_msg) const; > > > > > bool getDelimitedStringV1RawOrV2Quoted(MyString *result,MyString *error_msg) const; > > > void getDelimitedStringForDisplay(MyString *result) const; > > > > char *getNullDelimitedString() const; > > > > char **getStringArray() const; > > bool GetEnv(MyString const &var,MyString &val) const; > const char *GetEnv(MyString const &var) const; > > > > static bool IsSafeEnvV1Value(char const *str,char delim='\0'); > > > > static bool IsSafeEnvV2Value(char const *str); > > > static char GetEnvV1Delimiter(char const *opsys=__null); > > > > static bool IsV2QuotedString(char const *str); > > > > static bool V2QuotedToV2Raw(char const *v1_quoted,MyString *v2_raw,MyString *errmsg); > > bool InputWasV1() const {return input_was_v1;} > > protected: > HashTable<MyString, MyString> *_envTable; > bool input_was_v1; > > static bool ReadFromDelimitedString( char const *&input, char *output ); > > static void WriteToDelimitedString(char const *input,MyString &output); > > static void AddErrorMessage(char const *msg,MyString *error_buffer); >}; ># 57 "condor_daemon_core.h" 2 > ># 1 "../condor_daemon_client/daemon_list.h" 1 ># 26 "../condor_daemon_client/daemon_list.h" ># 1 "../condor_c++_util/simplelist.h" 1 ># 27 "../condor_daemon_client/daemon_list.h" 2 > ># 1 "../condor_c++_util/condor_query.h" 1 ># 28 "../condor_c++_util/condor_query.h" ># 1 "../condor_includes/condor_attributes.h" 1 ># 29 "../condor_includes/condor_attributes.h" >extern const char * ATTR_ACCOUNTING_GROUP; >extern const char * ATTR_ACTION_CONSTRAINT; >extern const char * ATTR_ACTION_IDS; >extern const char * ATTR_ACTION_RESULT; >extern const char * ATTR_ACTION_RESULT_TYPE; >extern const char * ATTR_ACTIVITY; >extern const char * ATTR_ALLOW_NOTIFICATION_CC; >extern const char * ATTR_ALL_REMOTE_HOSTS; >extern const char * ATTR_APPEND_FILES; >extern const char * ATTR_ARCH; >extern const char * ATTR_AVAIL_BANDWIDTH_TO_SUBMIT_MACHINE; >extern const char * ATTR_AVAIL_BANDWIDTH_TO_LAST_CKPT_SERVER; >extern const char * ATTR_AVAIL_BANDWIDTH_TO_CKPT_SERVER; >extern const char * ATTR_AVAIL_SINCE; >extern const char * ATTR_AVAIL_TIME; >extern const char * ATTR_AVAIL_TIME_ESTIMATE; >extern const char * ATTR_BANDWIDTH_TO_SUBMIT_MACHINE; >extern const char * ATTR_BANDWIDTH_TO_LAST_CKPT_SERVER; >extern const char * ATTR_BANDWIDTH_TO_CKPT_SERVER; >extern const char * ATTR_BUFFER_SIZE; >extern const char * ATTR_BUFFER_FILES; >extern const char * ATTR_BUFFER_BLOCK_SIZE; >extern const char * ATTR_BUFFER_BLOCKS_USED; >extern const char * ATTR_BUFFER_PREFETCH_SIZE; >extern const char * ATTR_BYTES_SENT; >extern const char * ATTR_BYTES_RECVD; >extern const char * ATTR_CAPABILITY; >extern const char * ATTR_CKPT_SERVER; >extern const char * ATTR_COD_CLAIMS; >extern const char * ATTR_COMMAND; >extern const char * ATTR_COMPRESS_FILES; >extern const char * ATTR_REQUESTED_CAPACITY; >extern const char * ATTR_CKPT_ARCH; >extern const char * ATTR_CKPT_LAST_READ; >extern const char * ATTR_CKPT_OPSYS; >extern const char * ATTR_CLAIM_ID; >extern const char * ATTR_CLAIM_IDS; >extern const char * ATTR_PUBLIC_CLAIM_ID; >extern const char * ATTR_PUBLIC_CLAIM_IDS; >extern const char * ATTR_CLAIM_STATE; >extern const char * ATTR_CLAIM_TYPE; >extern const char * ATTR_CLIENT_MACHINE; >extern const char * ATTR_CLOCK_DAY; >extern const char * ATTR_CLOCK_MIN; >extern const char * ATTR_CLUSTER_ID; >extern const char * ATTR_AUTO_CLUSTER_ID; >extern const char * ATTR_AUTO_CLUSTER_ATTRS; >extern const char * ATTR_COMPLETION_DATE; > > >extern const char * ATTR_CONSOLE_IDLE; >extern const char * ATTR_CONTINUE; >extern const char * ATTR_CORE_SIZE; >extern const char * ATTR_CRON_MINUTES; >extern const char * ATTR_CRON_HOURS; >extern const char * ATTR_CRON_DAYS_OF_MONTH; >extern const char * ATTR_CRON_MONTHS; >extern const char * ATTR_CRON_DAYS_OF_WEEK; >extern const char * ATTR_CRON_NEXT_RUNTIME; >extern const char * ATTR_CRON_CURRENT_TIME_RANGE; >extern const char * ATTR_CRON_PREP_TIME; >extern const char * ATTR_CRON_WINDOW; >extern const char * ATTR_CPU_BUSY; >extern const char * ATTR_CPU_BUSY_TIME; >extern const char * ATTR_CPU_IS_BUSY; >extern const char * ATTR_CPUS; >extern const char * ATTR_CURRENT_HOSTS; >extern const char * ATTR_CURRENT_JOBS_RUNNING; >extern const char * ATTR_CURRENT_RANK; >extern const char * ATTR_CURRENT_TIME; >extern const char * ATTR_DAEMON_START_TIME; >extern const char * ATTR_DAEMON_SHUTDOWN; >extern const char * ATTR_DAEMON_SHUTDOWN_FAST; >extern const char * ATTR_DAG_NODE_NAME; >extern const char * ATTR_DAG_NODE_NAME_ALT; >extern const char * ATTR_DAGMAN_JOB_ID; >extern const char * ATTR_DEFERRAL_OFFSET; >extern const char * ATTR_DEFERRAL_PREP_TIME; >extern const char * ATTR_DEFERRAL_TIME; >extern const char * ATTR_DEFERRAL_WINDOW; >extern const char * ATTR_DESTINATION; >extern const char * ATTR_DISK; >extern const char * ATTR_DISK_USAGE; >extern const char * ATTR_EMAIL_ATTRIBUTES; >extern const char * ATTR_ENTERED_CURRENT_ACTIVITY; >extern const char * ATTR_ENTERED_CURRENT_STATE; >extern const char * ATTR_ENTERED_CURRENT_STATUS; >extern const char * ATTR_ERROR_STRING; >extern const char * ATTR_EXCEPTION_HIERARCHY; >extern const char * ATTR_EXCEPTION_NAME; >extern const char * ATTR_EXCEPTION_TYPE; >extern const char * ATTR_EXECUTABLE_SIZE; >extern const char * ATTR_EXIT_REASON; >extern const char * ATTR_FETCH_FILES; >extern const char * ATTR_FILE_NAME; >extern const char * ATTR_FILE_SIZE; >extern const char * ATTR_FILE_SYSTEM_DOMAIN; >extern const char * ATTR_FILE_REMAPS; >extern const char * ATTR_FILE_READ_COUNT; >extern const char * ATTR_FILE_READ_BYTES; >extern const char * ATTR_FILE_WRITE_COUNT; >extern const char * ATTR_FILE_WRITE_BYTES; >extern const char * ATTR_FILE_SEEK_COUNT; >extern const char * ATTR_FLOCKED_JOBS; >extern const char * ATTR_FLAVOR; >extern const char * ATTR_FORCE; >extern const char * ATTR_GID; >extern const char * ATTR_GLOBAL_JOB_ID; >extern const char * ATTR_GZIP; >extern const char * ATTR_GLOBUS_CONTACT_STRING; >extern const char * ATTR_GLOBUS_DELEGATION_URI; >extern const char * ATTR_GLOBUS_GRAM_VERSION; >extern const char * ATTR_GLOBUS_RESOURCE; >extern const char * ATTR_GLOBUS_RESOURCE_UNAVAILABLE_TIME; >extern const char * ATTR_JOB_MUST_EXPAND; >extern const char * ATTR_GLOBUS_RSL; >extern const char * ATTR_GLOBUS_STATUS; >extern const char * ATTR_GLOBUS_XML; >extern const char * ATTR_X509_USER_PROXY; >extern const char * ATTR_X509_USER_PROXY_SUBJECT; >extern const char * ATTR_GLOBUS_JOBMANAGER_TYPE; >extern const char * ATTR_GLOBUS_SUBMIT_ID; >extern const char * ATTR_GRIDFTP_SERVER_JOB; >extern const char * ATTR_GRIDFTP_URL_BASE; >extern const char * ATTR_REQUESTED_GRIDFTP_URL_BASE; >extern const char * ATTR_GRID_RESOURCE; >extern const char * ATTR_GRID_RESOURCE_UNAVAILABLE_TIME; >extern const char * ATTR_GRID_JOB_ID; >extern const char * ATTR_GRID_JOB_STATUS; > >extern const char * ATTR_MYPROXY_SERVER_DN; >extern const char * ATTR_MYPROXY_HOST_NAME; >extern const char * ATTR_MYPROXY_PASSWORD; >extern const char * ATTR_MYPROXY_CRED_NAME; >extern const char * ATTR_MYPROXY_REFRESH_THRESHOLD; >extern const char * ATTR_MYPROXY_NEW_PROXY_LIFETIME; > >extern const char * ATTR_HAS_CHECKPOINTING; >extern const char * ATTR_HAS_FILE_TRANSFER; >extern const char * ATTR_HAS_PER_FILE_ENCRYPTION; >extern const char * ATTR_HAS_IO_PROXY; >extern const char * ATTR_HAS_JAVA; >extern const char * ATTR_HAS_JIC_LOCAL_CONFIG; >extern const char * ATTR_HAS_JIC_LOCAL_STDIN; >extern const char * ATTR_HAS_JOB_AD; >extern const char * ATTR_HAS_JOB_AD_FROM_FILE; >extern const char * ATTR_HAS_JOB_DEFERRAL; >extern const char * ATTR_HAS_MPI; >extern const char * ATTR_HAS_OLD_VANILLA; >extern const char * ATTR_HAS_PVM; >extern const char * ATTR_HAS_RECONNECT; >extern const char * ATTR_HAS_REMOTE_SYSCALLS; >extern const char * ATTR_HAS_TDP; >extern const char * ATTR_HAS_SOAP_API; >extern const char * ATTR_HAS_WIN_RUN_AS_OWNER; >extern const char * ATTR_HAS_VM; >extern const char * ATTR_HELD_JOBS; >extern const char * ATTR_HOLD_KILL_SIG; >extern const char * ATTR_IDLE_JOBS; >extern const char * ATTR_IMAGE_SIZE; >extern const char * ATTR_INTERACTIVE; >extern const char * ATTR_IS_DAEMON_CORE; >extern const char * ATTR_IS_OWNER; >extern const char * ATTR_IS_QUEUE_SUPER_USER; >extern const char * ATTR_INACTIVE; >extern const char * ATTR_JAR_FILES; >extern const char * ATTR_JAVA_MFLOPS; >extern const char * ATTR_JAVA_VENDOR; >extern const char * ATTR_JAVA_VERSION; >extern const char * ATTR_JOB_ACTION; >extern const char * ATTR_JOB_ARGUMENTS1; >extern const char * ATTR_JOB_ARGUMENTS2; >extern const char * ATTR_JOB_CMD; >extern const char * ATTR_ORIG_JOB_CMD; >extern const char * ATTR_JOB_CMDEXT; >extern const char * ATTR_JOB_CORE_DUMPED; >extern const char * ATTR_JOB_CORE_FILENAME; >extern const char * ATTR_JOB_CURRENT_START_DATE; >extern const char * ATTR_JOB_DURATION; >extern const char * ATTR_JOB_ENVIRONMENT1; >extern const char * ATTR_JOB_ENVIRONMENT1_DELIM; >extern const char * ATTR_JOB_ENVIRONMENT2; >extern const char * ATTR_JOB_ERROR; >extern const char * ATTR_JOB_ERROR_ORIG; >extern const char * ATTR_JOB_ERROR_SIZE; >extern const char * ATTR_JOB_KEYWORD; >extern const char * ATTR_JOB_LEASE_DURATION; >extern const char * ATTR_JOB_LEASE_EXPIRATION; >extern const char * ATTR_JOB_SPOOL_EXECUTABLE; >extern const char * ATTR_JOB_EXIT_STATUS; >extern const char * ATTR_JOB_EXIT_REQUIREMENTS; >extern const char * ATTR_JOB_ID; >extern const char * ATTR_JOB_FINISHED_HOOK_DONE; >extern const char * ATTR_JOB_INPUT; >extern const char * ATTR_JOB_IWD; >extern const char * ATTR_JOB_JAVA_VM_ARGS1; >extern const char * ATTR_JOB_JAVA_VM_ARGS2; >extern const char * ATTR_ORIG_JOB_IWD; >extern const char * ATTR_JOB_REMOTE_IWD; >extern const char * ATTR_JOB_RUNAS_OWNER; >extern const char * ATTR_JOB_LOCAL_CPU; >extern const char * ATTR_JOB_LOCAL_SYS_CPU; >extern const char * ATTR_JOB_LOCAL_USER_CPU; >extern const char * ATTR_JOB_MANAGED; >extern const char * ATTR_JOB_MANAGED_MANAGER; >extern const char * ATTR_JOB_MATCHED; >extern const char * ATTR_JOB_NOOP; >extern const char * ATTR_JOB_NOOP_EXIT_SIGNAL; >extern const char * ATTR_JOB_NOOP_EXIT_CODE; >extern const char * ATTR_JOB_NOTIFICATION; >extern const char * ATTR_JOB_OUTPUT; >extern const char * ATTR_JOB_OUTPUT_ORIG; >extern const char * ATTR_JOB_OUTPUT_SIZE; >extern const char * ATTR_JOB_PID; >extern const char * ATTR_JOB_PRIO; >extern const char * ATTR_JOB_COMMITTED_TIME; >extern const char * ATTR_JOB_LANGUAGE; >extern const char * ATTR_JOB_LAST_START_DATE; >extern const char * ATTR_JOB_LEAVE_IN_QUEUE; >extern const char * ATTR_JOB_REMOTE_SYS_CPU; >extern const char * ATTR_JOB_REMOTE_USER_CPU; >extern const char * ATTR_JOB_REMOTE_WALL_CLOCK; >extern const char * ATTR_JOB_ROOT_DIR; >extern const char * ATTR_JOB_RUN_COUNT; >extern const char * ATTR_JOB_START; >extern const char * ATTR_JOB_START_DATE; >extern const char * ATTR_JOB_STATE; >extern const char * ATTR_JOB_STATUS; >extern const char * ATTR_JOB_STATUS_ON_RELEASE; >extern const char * ATTR_JOB_UNIVERSE; >extern const char * ATTR_JOB_GRID_TYPE; >extern const char * ATTR_JOB_WALL_CLOCK_CKPT; >extern const char * ATTR_JOB_QUEUE_BIRTHDATE; >extern const char * ATTR_JOB_VM_TYPE; >extern const char * ATTR_JOB_VM_MEMORY; >extern const char * ATTR_JOB_VM_CHECKPOINT; >extern const char * ATTR_JOB_VM_NETWORKING; >extern const char * ATTR_JOB_VM_NETWORKING_TYPE; >extern const char * ATTR_JOB_VM_HARDWARE_VT; >extern const char * ATTR_KEYBOARD_IDLE; >extern const char * ATTR_KEYSTORE_FILE; >extern const char * ATTR_KEYSTORE_ALIAS; >extern const char * ATTR_KEYSTORE_PASSPHRASE_FILE; >extern const char * ATTR_KFLOPS; >extern const char * ATTR_KILL; >extern const char * ATTR_KILL_SIG; >extern const char * ATTR_LAST_AVAIL_INTERVAL; >extern const char * ATTR_LAST_BENCHMARK; >extern const char * ATTR_LAST_CKPT_SERVER; >extern const char * ATTR_LAST_CKPT_TIME; >extern const char * ATTR_LAST_PUBLIC_CLAIM_ID; >extern const char * ATTR_LAST_PUBLIC_CLAIM_IDS; >extern const char * ATTR_LAST_CLAIM_STATE; >extern const char * ATTR_LAST_VACATE_TIME; >extern const char * ATTR_LAST_HEARD_FROM; >extern const char * ATTR_LAST_HOLD_REASON; >extern const char * ATTR_LAST_HOLD_REASON_CODE; >extern const char * ATTR_LAST_HOLD_REASON_SUBCODE; >extern const char * ATTR_LAST_JOB_LEASE_RENEWAL; >extern const char * ATTR_LAST_JOB_LEASE_RENEWAL_FAILED; >extern const char * ATTR_LAST_MATCH_TIME; >extern const char * ATTR_LAST_MATCH_LIST_PREFIX; >extern const char * ATTR_LAST_MATCH_LIST_LENGTH; >extern const char * ATTR_LAST_REJ_MATCH_TIME; >extern const char * ATTR_LAST_REJ_MATCH_REASON; >extern const char * ATTR_LAST_PERIODIC_CHECKPOINT; >extern const char * ATTR_LAST_RELEASE_REASON; >extern const char * ATTR_LAST_REMOTE_HOST; >extern const char * ATTR_LAST_UPDATE; >extern const char * ATTR_LOCAL_CREDD; >extern const char * ATTR_LOCAL_FILES; >extern const char * ATTR_LOAD_AVG; >extern const char * ATTR_MACHINE; >extern const char * ATTR_MASTER_IP_ADDR; >extern const char * ATTR_MAX_HOSTS; >extern const char * ATTR_MAX_JOB_RETIREMENT_TIME; >extern const char * ATTR_MAX_JOBS_RUNNING; >extern const char * ATTR_MEMORY; >extern const char * ATTR_MIN_HOSTS; >extern const char * ATTR_MIPS; >extern const char * ATTR_MIRROR_ACTIVE; >extern const char * ATTR_MIRROR_JOB_ID; >extern const char * ATTR_MIRROR_LEASE_TIME; >extern const char * ATTR_MIRROR_RELEASED; >extern const char * ATTR_MIRROR_REMOTE_LEASE_TIME; >extern const char * ATTR_MIRROR_SCHEDD; >extern const char * ATTR_MIRROR_SUBMITTER_ID; >extern const char * ATTR_MPI_IS_MASTER; >extern const char * ATTR_MPI_MASTER_ADDR; >extern const char * ATTR_PARALLEL_IS_MASTER; >extern const char * ATTR_PARALLEL_MASTER_ADDR; >extern const char * ATTR_MY_CURRENT_TIME; >extern const char * ATTR_MY_TYPE; >extern const char * ATTR_NAME; >extern const char * ATTR_NICE_USER; >extern const char * ATTR_NEGOTIATOR_REQUIREMENTS; >extern const char * ATTR_NEXT_CLUSTER_NUM; >extern const char * ATTR_NEXT_JOB_START_DELAY; >extern const char * ATTR_NODE; >extern const char * ATTR_NORDUGRID_RSL; >extern const char * ATTR_NOTIFY_USER; >extern const char * ATTR_NOTIFY_JOB_SCHEDULER; >extern const char * ATTR_NT_DOMAIN; >extern const char * ATTR_WINDOWS_VERSION; >extern const char * ATTR_WINDOWS_MAJOR_VERSION; >extern const char * ATTR_WINDOWS_MINOR_VERSION; >extern const char * ATTR_WINDOWS_BUILD_NUMBER; >extern const char * ATTR_NUM_COD_CLAIMS; >extern const char * ATTR_NUM_CKPTS; >extern const char * ATTR_NUM_CKPTS_RAW; >extern const char * ATTR_NUM_GLOBUS_SUBMITS; >extern const char * ATTR_NUM_MATCHES; >extern const char * ATTR_NUM_HOPS_TO_SUBMIT_MACHINE; >extern const char * ATTR_NUM_HOPS_TO_LAST_CKPT_SERVER; >extern const char * ATTR_NUM_HOPS_TO_CKPT_SERVER; >extern const char * ATTR_NUM_JOB_STARTS; >extern const char * ATTR_NUM_JOB_RECONNECTS; >extern const char * ATTR_NUM_PIDS; >extern const char * ATTR_NUM_RESTARTS; >extern const char * ATTR_NUM_SHADOW_EXCEPTIONS; >extern const char * ATTR_NUM_SHADOW_STARTS; >extern const char * ATTR_NUM_SYSTEM_HOLDS; >extern const char * ATTR_NUM_USERS; >extern const char * ATTR_OPSYS; >extern const char * ATTR_ORIG_MAX_HOSTS; >extern const char * ATTR_OWNER; >extern const char * ATTR_PARALLEL_SCHEDULING_GROUP; >extern const char * ATTR_PARALLEL_SCRIPT_SHADOW; >extern const char * ATTR_PARALLEL_SCRIPT_STARTER; >extern const char * ATTR_PARALLEL_SHUTDOWN_POLICY; >extern const char * ATTR_PERIODIC_CHECKPOINT; > >extern const char * ATTR_PREEMPTING_ACCOUNTING_GROUP; >extern const char * ATTR_PREEMPTING_RANK; >extern const char * ATTR_PREEMPTING_OWNER; >extern const char * ATTR_PREEMPTING_USER; >extern const char * ATTR_PREFERENCES; >extern const char * ATTR_PREV_SEND_ESTIMATE; >extern const char * ATTR_PREV_RECV_ESTIMATE; >extern const char * ATTR_PRIO; >extern const char * ATTR_PROC_ID; >extern const char * ATTR_PRIVATE_NETWORK_IP_ADDR; >extern const char * ATTR_PRIVATE_NETWORK_NAME; >extern const char * ATTR_PUBLIC_NETWORK_IP_ADDR; >extern const char * ATTR_Q_DATE; >extern const char * ATTR_RANK; >extern const char * ATTR_REAL_UID; >extern const char * ATTR_RELEASE_REASON; >extern const char * ATTR_REMOTE_HOST; >extern const char * ATTR_REMOTE_HOSTS; >extern const char * ATTR_REMOTE_JOB_ID; >extern const char * ATTR_REMOTE_OWNER; >extern const char * ATTR_REMOTE_POOL; >extern const char * ATTR_REMOTE_SCHEDD; >extern const char * ATTR_REMOTE_SLOT_ID; >extern const char * ATTR_REMOTE_SPOOL_DIR; >extern const char * ATTR_REMOTE_USER; >extern const char * ATTR_REMOTE_USER_PRIO; > >extern const char * ATTR_REMOTE_VIRTUAL_MACHINE_ID; >extern const char * ATTR_REMOVE_KILL_SIG; >extern const char * ATTR_REMOVE_REASON; >extern const char * ATTR_REQUEUE_REASON; >extern const char * ATTR_REQUIREMENTS; >extern const char * ATTR_RESULT; >extern const char * ATTR_RSC_BYTES_SENT; >extern const char * ATTR_RSC_BYTES_RECVD; >extern const char * ATTR_RUNNING_JOBS; >extern const char * ATTR_RUNNING_COD_JOB; >extern const char * ATTR_RUN_BENCHMARKS; >extern const char * ATTR_SHADOW_IP_ADDR; >extern const char * ATTR_MY_ADDRESS; >extern const char * ATTR_SCHEDD_INTERVAL; >extern const char * ATTR_SCHEDD_IP_ADDR; >extern const char * ATTR_SCHEDD_NAME; >extern const char * ATTR_SCHEDULER; >extern const char * ATTR_SHADOW_WAIT_FOR_DEBUG; >extern const char * ATTR_SLOT_ID; >extern const char * ATTR_SOURCE; >extern const char * ATTR_STAGE_IN_START; >extern const char * ATTR_STAGE_IN_FINISH; >extern const char * ATTR_STAGE_OUT_START; >extern const char * ATTR_STAGE_OUT_FINISH; >extern const char * ATTR_START; >extern const char * ATTR_START_LOCAL_UNIVERSE; >extern const char * ATTR_START_SCHEDULER_UNIVERSE; >extern const char * ATTR_STARTD_IP_ADDR; >extern const char * ATTR_STATE; >extern const char * ATTR_STARTER_IP_ADDR; >extern const char * ATTR_STARTER_ABILITY_LIST; >extern const char * ATTR_STARTER_IGNORED_ATTRS; >extern const char * ATTR_STARTER_ULOG_FILE; >extern const char * ATTR_STARTER_ULOG_USE_XML; >extern const char * ATTR_STARTER_WAIT_FOR_DEBUG; >extern const char * ATTR_STATUS; >extern const char * ATTR_STREAM_INPUT; >extern const char * ATTR_STREAM_OUTPUT; >extern const char * ATTR_STREAM_ERROR; >extern const char * ATTR_SUBMITTER_ID; >extern const char * ATTR_SUBMITTOR_PRIO; >extern const char * ATTR_SUBNET; >extern const char * ATTR_SUSPEND; >extern const char * ATTR_SUSPEND_JOB_AT_EXEC; >extern const char * ATTR_TARGET_TYPE; >extern const char * ATTR_TIME_TO_LIVE; >extern const char * ATTR_TOOL_DAEMON_ARGS1; >extern const char * ATTR_TOOL_DAEMON_ARGS2; >extern const char * ATTR_TOOL_DAEMON_CMD; >extern const char * ATTR_TOOL_DAEMON_ERROR; >extern const char * ATTR_TOOL_DAEMON_INPUT; >extern const char * ATTR_TOOL_DAEMON_OUTPUT; >extern const char * ATTR_TOTAL_CLAIM_RUN_TIME; >extern const char * ATTR_TOTAL_CLAIM_SUSPEND_TIME; > >extern const char * ATTR_TOTAL_CPUS; >extern const char * ATTR_TOTAL_DISK; >extern const char * ATTR_TOTAL_FLOCKED_JOBS; >extern const char * ATTR_TOTAL_REMOVED_JOBS; >extern const char * ATTR_TOTAL_HELD_JOBS; >extern const char * ATTR_TOTAL_IDLE_JOBS; >extern const char * ATTR_TOTAL_JOB_ADS; >extern const char * ATTR_TOTAL_JOB_RUN_TIME; >extern const char * ATTR_TOTAL_JOB_SUSPEND_TIME; >extern const char * ATTR_TOTAL_LOAD_AVG; >extern const char * ATTR_TOTAL_MEMORY; >extern const char * ATTR_TOTAL_RUNNING_JOBS; >extern const char * ATTR_TOTAL_LOCAL_RUNNING_JOBS; >extern const char * ATTR_TOTAL_LOCAL_IDLE_JOBS; >extern const char * ATTR_TOTAL_SCHEDULER_RUNNING_JOBS; >extern const char * ATTR_TOTAL_SCHEDULER_IDLE_JOBS; >extern const char * ATTR_TOTAL_SLOTS; >extern const char * ATTR_TOTAL_TIME_IN_CYCLE; >extern const char * ATTR_TOTAL_TIME_BACKFILL_BUSY; >extern const char * ATTR_TOTAL_TIME_BACKFILL_IDLE; >extern const char * ATTR_TOTAL_TIME_BACKFILL_KILLING; >extern const char * ATTR_TOTAL_TIME_CLAIMED_BUSY; >extern const char * ATTR_TOTAL_TIME_CLAIMED_IDLE; >extern const char * ATTR_TOTAL_TIME_CLAIMED_RETIRING; >extern const char * ATTR_TOTAL_TIME_CLAIMED_SUSPENDED; >extern const char * ATTR_TOTAL_TIME_MATCHED_IDLE; >extern const char * ATTR_TOTAL_TIME_OWNER_IDLE; >extern const char * ATTR_TOTAL_TIME_PREEMPTING_KILLING; >extern const char * ATTR_TOTAL_TIME_PREEMPTING_VACATING; >extern const char * ATTR_TOTAL_TIME_UNCLAIMED_BENCHMARKING; >extern const char * ATTR_TOTAL_TIME_UNCLAIMED_IDLE; > >extern const char * ATTR_TOTAL_VIRTUAL_MACHINES; >extern const char * ATTR_TOTAL_VIRTUAL_MEMORY; >extern const char * ATTR_UID; >extern const char * ATTR_UID_DOMAIN; >extern const char * ATTR_ULOG_FILE; >extern const char * ATTR_ULOG_USE_XML; >extern const char * ATTR_UPDATE_INTERVAL; >extern const char * ATTR_CLASSAD_LIFETIME; >extern const char * ATTR_UPDATE_PRIO; >extern const char * ATTR_UPDATE_SEQUENCE_NUMBER; >extern const char * ATTR_USE_GRID_SHELL; >extern const char * ATTR_USER; >extern const char * ATTR_VACATE; >extern const char * ATTR_VACATE_TYPE; >extern const char * ATTR_VIRTUAL_MEMORY; >extern const char * ATTR_WANT_CHECKPOINT; >extern const char * ATTR_WANT_CLAIMING; >extern const char * ATTR_WANT_IO_PROXY; >extern const char * ATTR_WANT_MATCH_DIAGNOSTICS; >extern const char * ATTR_WANT_PARALLEL_SCHEDULING_GROUPS; >extern const char * ATTR_WANT_REMOTE_SYSCALLS; >extern const char * ATTR_WANT_REMOTE_IO; >extern const char * ATTR_WANT_SUBMIT_NET_STATS; >extern const char * ATTR_WANT_LAST_CKPT_SERVER_NET_STATS; >extern const char * ATTR_WANT_CKPT_SERVER_NET_STATS; >extern const char * ATTR_WANT_AD_REVAULATE; >extern const char * ATTR_COLLECTOR_IP_ADDR; >extern const char * ATTR_NEGOTIATOR_IP_ADDR; >extern const char * ATTR_CREDD_IP_ADDR; >extern const char * ATTR_NUM_HOSTS_TOTAL; >extern const char * ATTR_NUM_HOSTS_CLAIMED; >extern const char * ATTR_NUM_HOSTS_UNCLAIMED; >extern const char * ATTR_NUM_HOSTS_OWNER; >extern const char * ATTR_MAX_RUNNING_JOBS; > >extern const char * ATTR_SCHEDD_BIRTHDATE; >extern const char * ATTR_SHADOW_VERSION; > >extern const char * ATTR_VIRTUAL_MACHINE_ID; >extern const char * ATTR_SHOULD_TRANSFER_FILES; >extern const char * ATTR_WHEN_TO_TRANSFER_OUTPUT; >extern const char * ATTR_TRANSFER_TYPE; >extern const char * ATTR_TRANSFER_FILES; >extern const char * ATTR_TRANSFER_KEY; >extern const char * ATTR_TRANSFER_EXECUTABLE; >extern const char * ATTR_TRANSFER_INPUT; >extern const char * ATTR_TRANSFER_OUTPUT; >extern const char * ATTR_TRANSFER_ERROR; >extern const char * ATTR_TRANSFER_INPUT_FILES; >extern const char * ATTR_TRANSFER_INTERMEDIATE_FILES; >extern const char * ATTR_TRANSFER_OUTPUT_FILES; >extern const char * ATTR_TRANSFER_OUTPUT_REMAPS; >extern const char * ATTR_ENCRYPT_INPUT_FILES; >extern const char * ATTR_ENCRYPT_OUTPUT_FILES; >extern const char * ATTR_DONT_ENCRYPT_INPUT_FILES; >extern const char * ATTR_DONT_ENCRYPT_OUTPUT_FILES; >extern const char * ATTR_TRANSFER_SOCKET; >extern const char * ATTR_SERVER_TIME; >extern const char * ATTR_SHADOW_BIRTHDATE; >extern const char * ATTR_HOLD_REASON; >extern const char * ATTR_HOLD_REASON_CODE; >extern const char * ATTR_HOLD_REASON_SUBCODE; >extern const char * ATTR_WANT_MATCHING; >extern const char * ATTR_WANT_RESOURCE_AD; >extern const char * ATTR_TOTAL_SUSPENSIONS; >extern const char * ATTR_LAST_SUSPENSION_TIME; >extern const char * ATTR_CUMULATIVE_SUSPENSION_TIME; > >extern const char * ATTR_ON_EXIT_BY_SIGNAL; >extern const char * ATTR_ON_EXIT_CODE; >extern const char * ATTR_ON_EXIT_HOLD_CHECK; >extern const char * ATTR_ON_EXIT_REMOVE_CHECK; >extern const char * ATTR_ON_EXIT_SIGNAL; >extern const char * ATTR_POST_ON_EXIT_BY_SIGNAL; >extern const char * ATTR_POST_ON_EXIT_SIGNAL; >extern const char * ATTR_POST_ON_EXIT_CODE; >extern const char * ATTR_POST_EXIT_REASON; >extern const char * ATTR_PERIODIC_HOLD_CHECK; >extern const char * ATTR_PERIODIC_RELEASE_CHECK; >extern const char * ATTR_PERIODIC_REMOVE_CHECK; >extern const char * ATTR_TIMER_REMOVE_CHECK; >extern const char * ATTR_TIMER_REMOVE_CHECK_SENT; >extern const char * ATTR_GLOBUS_RESUBMIT_CHECK; >extern const char * ATTR_REMATCH_CHECK; > >extern const char * ATTR_SEC_AUTHENTICATION_METHODS_LIST; >extern const char * ATTR_SEC_AUTHENTICATION_METHODS; >extern const char * ATTR_SEC_CRYPTO_METHODS; >extern const char * ATTR_SEC_AUTHENTICATION; >extern const char * ATTR_SEC_ENCRYPTION; >extern const char * ATTR_SEC_INTEGRITY; >extern const char * ATTR_SEC_ENACT; >extern const char * ATTR_SEC_RESPOND; >extern const char * ATTR_SEC_COMMAND; >extern const char * ATTR_SEC_AUTH_COMMAND; >extern const char * ATTR_SEC_SID; >extern const char * ATTR_SEC_SUBSYSTEM; >extern const char * ATTR_SEC_REMOTE_VERSION; >extern const char * ATTR_SEC_SERVER_ENDPOINT; >extern const char * ATTR_SEC_SERVER_COMMAND_SOCK; >extern const char * ATTR_SEC_SERVER_PID; >extern const char * ATTR_SEC_PARENT_UNIQUE_ID; >extern const char * ATTR_SEC_PACKET_COUNT; >extern const char * ATTR_SEC_NEGOTIATION; >extern const char * ATTR_SEC_VALID_COMMANDS; >extern const char * ATTR_SEC_SESSION_DURATION; >extern const char * ATTR_SEC_USER; >extern const char * ATTR_SEC_NEW_SESSION; >extern const char * ATTR_SEC_USE_SESSION; >extern const char * ATTR_SEC_COOKIE; > >extern const char * ATTR_MULTIPLE_TASKS_PER_PVMD; > >extern const char * ATTR_UPDATESTATS_TOTAL; >extern const char * ATTR_UPDATESTATS_SEQUENCED; >extern const char * ATTR_UPDATESTATS_LOST; >extern const char * ATTR_UPDATESTATS_HISTORY; > >extern const char * ATTR_QUILL_ENABLED; >extern const char * ATTR_QUILL_NAME; >extern const char * ATTR_QUILL_IS_REMOTELY_QUERYABLE; >extern const char * ATTR_QUILL_DB_IP_ADDR; >extern const char * ATTR_QUILL_DB_NAME; >extern const char * ATTR_QUILL_DB_QUERY_PASSWORD; > >extern const char * ATTR_QUILL_SQL_TOTAL; >extern const char * ATTR_QUILL_SQL_LAST_BATCH; > >extern const char * ATTR_CHECKPOINT_PLATFORM; >extern const char * ATTR_LAST_CHECKPOINT_PLATFORM; >extern const char * ATTR_IS_VALID_CHECKPOINT_PLATFORM; > >extern const char * ATTR_HAD_IS_ACTIVE; >extern const char * ATTR_HAD_LIST; >extern const char * ATTR_HAD_INDEX; >extern const char * ATTR_TERMINATION_PENDING; >extern const char * ATTR_TERMINATION_EXITREASON; > >extern const char * ATTR_TREQ_DIRECTION; >extern const char * ATTR_TREQ_INVALID_REQUEST; >extern const char * ATTR_TREQ_INVALID_REASON; >extern const char * ATTR_TREQ_HAS_CONSTRAINT; >extern const char * ATTR_TREQ_JOBID_LIST; >extern const char * ATTR_TREQ_PEER_VERSION; >extern const char * ATTR_TREQ_FTP; >extern const char * ATTR_TREQ_TD_SINFUL; >extern const char * ATTR_TREQ_TD_ID; >extern const char * ATTR_TREQ_CONSTRAINT; >extern const char * ATTR_TREQ_JOBID_ALLOW_LIST; >extern const char * ATTR_TREQ_JOBID_DENY_LIST; >extern const char * ATTR_TREQ_CAPABILITY; >extern const char * ATTR_TREQ_WILL_BLOCK; >extern const char * ATTR_TREQ_NUM_TRANSFERS; >extern const char * ATTR_TREQ_UPDATE_STATUS; >extern const char * ATTR_TREQ_UPDATE_REASON; >extern const char *ATTR_TREQ_SIGNALED; >extern const char *ATTR_TREQ_SIGNAL; >extern const char *ATTR_TREQ_EXIT_CODE; >extern const char * ATTR_NEGOTIATOR_MATCH_EXPR; > >extern const char *ATTR_VM_TYPE; >extern const char *ATTR_VM_VERSION; >extern const char *ATTR_VM_MEMORY; >extern const char *ATTR_VM_NETWORKING; >extern const char *ATTR_VM_NETWORKING_TYPES; >extern const char *ATTR_VM_HARDWARE_VT; >extern const char *ATTR_VM_AVAIL_NUM; >extern const char *ATTR_VM_ALL_GUEST_MACS; >extern const char *ATTR_VM_ALL_GUEST_IPS; >extern const char *ATTR_VM_GUEST_MAC; >extern const char *ATTR_VM_GUEST_IP; >extern const char *ATTR_VM_GUEST_MEM; >extern const char *ATTR_VM_CKPT_MAC; >extern const char *ATTR_VM_CKPT_IP; > > > > > > >extern const char * ATTR_WAITPID_STATUS; >extern const char * ATTR_TERMINATION_REASON; > > > >extern const char * MANAGED_EXTERNAL; > >extern const char * MANAGED_SCHEDD; > >extern const char * MANAGED_DONE; > >extern const char * COLLECTOR_REQUIREMENTS; >extern const char * ATTR_PREV_LAST_HEARD_FROM; > >extern const char *ATTR_TRY_AGAIN; >extern const char *ATTR_DOWNLOADING; >extern const char *ATTR_TIMEOUT; > > >typedef enum >{ > ATTRE_CONDOR_LOAD_AVG = 0, > ATTRE_CONDOR_ADMIN, > ATTRE_PLATFORM, > ATTRE_TOTAL_LOAD, > ATTRE_VERSION, > >} CONDOR_ATTR; > > >int AttrInit( void ); >const char *AttrGetName( CONDOR_ATTR ); ># 29 "../condor_c++_util/condor_query.h" 2 ># 1 "../condor_c++_util/query_result_type.h" 1 ># 25 "../condor_c++_util/query_result_type.h" >enum QueryResult >{ > Q_OK = 0, > Q_INVALID_CATEGORY = 1, > Q_MEMORY_ERROR = 2, > Q_PARSE_ERROR = 3, > Q_COMMUNICATION_ERROR = 4, > Q_INVALID_QUERY = 5, > Q_NO_COLLECTOR_HOST = 6 >}; ># 30 "../condor_c++_util/condor_query.h" 2 ># 1 "../condor_c++_util/generic_query.h" 1 ># 28 "../condor_c++_util/generic_query.h" >class GenericQuery >{ > public: > > GenericQuery (); > GenericQuery (const GenericQuery &); > ~GenericQuery (); > > > int setNumIntegerCats (const int); > int setNumStringCats (const int); > int setNumFloatCats (const int); > > > int addInteger (const int, int); > int addString (const int, const char *); > int addFloat (const int, float); > int addCustomOR (const char *); > int addCustomAND( const char * ); > > > int clearInteger (const int); > int clearString (const int); > int clearFloat (const int); > int clearCustomOR (void); > int clearCustomAND(void); > > > void setIntegerKwList (char **); > void setStringKwList (char **); > void setFloatKwList (char **); > > > int makeQuery (ClassAd &); > > > > > > private: > > int integerThreshold; > int stringThreshold; > int floatThreshold; > > > char **integerKeywordList; > char **stringKeywordList; > char **floatKeywordList; > > > SimpleList<int> *integerConstraints; > SimpleList<float> *floatConstraints; > List<char> *stringConstraints; > List<char> customORConstraints; > List<char> customANDConstraints; > > > void clearQueryObject (void); > void clearStringCategory (List<char> &); > void clearIntegerCategory (SimpleList<int> &); > void clearFloatCategory (SimpleList<float> &); > void copyQueryObject (GenericQuery &); > void copyStringCategory (List<char> &, List<char> &); > void copyIntegerCategory (SimpleList<int> &, SimpleList<int> &); > void copyFloatCategory (SimpleList<float>&, SimpleList<float>&); >}; ># 31 "../condor_c++_util/condor_query.h" 2 ># 1 "../condor_c++_util/CondorError.h" 1 ># 32 "../condor_c++_util/condor_query.h" 2 > > > > > > >extern const char *ScheddStringKeywords []; >extern const char *ScheddIntegerKeywords[]; >extern const char *ScheddFloatKeywords []; >extern const char *StartdStringKeywords []; >extern const char *StartdIntegerKeywords[]; >extern const char *StartdFloatKeywords []; > >char *getStrQueryResult(QueryResult); > >enum ScheddStringCategory >{ > SCHEDD_NAME, > > SCHEDD_STRING_THRESHOLD >}; > >enum ScheddIntCategory >{ > SCHEDD_USERS, > SCHEDD_IDLE_JOBS, > SCHEDD_RUNNING_JOBS, > > SCHEDD_INT_THRESHOLD >}; > >enum ScheddFloatCategory >{ > SCHEDD_FLOAT_THRESHOLD >}; > >enum ScheddCustomCategory >{ > SCHEDD_CUSTOM, > > SCHEDD_CUSTOM_THRESHOLD >}; > >enum StartdStringCategory >{ > STARTD_NAME, > STARTD_MACHINE, > STARTD_ARCH, > STARTD_OPSYS, > > STARTD_STRING_THRESHOLD >}; > >enum StartdIntCategory >{ > STARTD_MEMORY, > STARTD_DISK, > > STARTD_INT_THRESHOLD >}; > >enum StartdFloatCategory >{ > STARTD_FLOAT_THRESHOLD >}; > >enum StartdCustomCategory >{ > STARTD_CUSTOM, > > STARTD_CUSTOM_THRESHOLD >}; > > >class CondorQuery >{ > public: > > CondorQuery (AdTypes); > ~CondorQuery (); > > > QueryResult clearStringConstraints (const int); > QueryResult clearIntegerConstraints (const int); > QueryResult clearFloatConstraints (const int); > void clearORCustomConstraints(void); > void clearANDCustomConstraints(void); > > > QueryResult addConstraint (const int, const char *); > QueryResult addConstraint (const int, const int); > QueryResult addConstraint (const int, const float); > QueryResult addORConstraint (const char *); > QueryResult addANDConstraint (const char *); > > > QueryResult fetchAds (ClassAdList &adList, const char * pool, CondorError* errstack = __null); > > > > QueryResult filterAds (ClassAdList &, ClassAdList &); > > > QueryResult getQueryAd (ClassAd &); > > > void setGenericQueryType(const char*); > > private: > > > CondorQuery (const CondorQuery &); > CondorQuery &operator= (const CondorQuery &); > > int command; > AdTypes queryType; > GenericQuery query; > char* genericQueryType; >}; ># 29 "../condor_daemon_client/daemon_list.h" 2 > > >class DCCollector; >class CondorQuery; >class ClassAdList; ># 44 "../condor_daemon_client/daemon_list.h" >class DaemonList { >public: > > DaemonList(); > virtual ~DaemonList(); > > > > > void init( daemon_t type, const char* host_list ); > > > > > > bool append( Daemon* ); > bool Append( Daemon* ); > bool isEmpty( void ); > bool IsEmpty( void ); > int number( void ); > int Number( void ); > > > void rewind( void ); > void Rewind( void ); > bool current( Daemon* & ); > bool Current( Daemon* & ); > bool next( Daemon* &); > bool Next( Daemon* &); > bool atEnd(); > bool AtEnd(); > > > void deleteCurrent(); > void DeleteCurrent(); > > protected: > SimpleList<Daemon*> list; > > > private: > > > > > Daemon* buildDaemon( daemon_t type, const char* str ); > > > DaemonList( const DaemonList& ); > DaemonList& operator = ( const DaemonList& ); >}; > > >class CollectorList : public DaemonList { > public: > CollectorList(); > virtual ~CollectorList(); > > > > static CollectorList * create(const char * pool = __null); > > > int resortLocal( const char *preferred_collector ); > > > > int sendUpdates (int cmd, ClassAd* ad1, ClassAd* ad2, bool nonblocking); > > > QueryResult query (CondorQuery & query, ClassAdList & adList, CondorError *errstack = 0); > > bool next( DCCollector* &); > bool Next( DCCollector* &); > bool next( Daemon* &); > bool Next( Daemon* &); > >}; ># 59 "condor_daemon_core.h" 2 ># 1 "../condor_c++_util/limit.h" 1 ># 25 "../condor_c++_util/limit.h" >extern "C" { > > >enum thingy { > CONDOR_SOFT_LIMIT = 0, > CONDOR_HARD_LIMIT = 1 >}; > > >void limit( int, rlim_t, int type ); > > > >} ># 60 "condor_daemon_core.h" 2 > ># 1 "../condor_procd/proc_family_io.h" 1 ># 28 "../condor_procd/proc_family_io.h" >enum proc_family_command_t { > PROC_FAMILY_REGISTER_SUBFAMILY, > PROC_FAMILY_TRACK_FAMILY_VIA_ENVIRONMENT, > PROC_FAMILY_TRACK_FAMILY_VIA_LOGIN, > PROC_FAMILY_TRACK_FAMILY_VIA_SUPPLEMENTARY_GROUP, > PROC_FAMILY_SIGNAL_PROCESS, > PROC_FAMILY_SUSPEND_FAMILY, > PROC_FAMILY_CONTINUE_FAMILY, > PROC_FAMILY_KILL_FAMILY, > PROC_FAMILY_GET_USAGE, > PROC_FAMILY_UNREGISTER_FAMILY, > PROC_FAMILY_TAKE_SNAPSHOT, > PROC_FAMILY_DUMP, > PROC_FAMILY_QUIT >}; > > > > > > > >enum proc_family_error_t { > PROC_FAMILY_ERROR_SUCCESS, > PROC_FAMILY_ERROR_BAD_ROOT_PID, > PROC_FAMILY_ERROR_BAD_WATCHER_PID, > PROC_FAMILY_ERROR_BAD_SNAPSHOT_INTERVAL, > PROC_FAMILY_ERROR_ALREADY_REGISTERED, > PROC_FAMILY_ERROR_FAMILY_NOT_FOUND, > PROC_FAMILY_ERROR_PROCESS_NOT_FOUND, > PROC_FAMILY_ERROR_PROCESS_NOT_FAMILY, > PROC_FAMILY_ERROR_UNREGISTER_ROOT, > PROC_FAMILY_ERROR_BAD_ENVIRONMENT_INFO, > PROC_FAMILY_ERROR_BAD_LOGIN_INFO, > PROC_FAMILY_ERROR_NO_GROUP_ID_AVAILABLE >}; > > > > >extern const char* proc_family_error_strings[]; > > > > >struct ProcFamilyUsage { > long user_cpu_time; > long sys_cpu_time; > double percent_cpu; > unsigned long max_image_size; > unsigned long total_image_size; > int num_procs; >}; ># 62 "condor_daemon_core.h" 2 >class ProcFamilyInterface; > > > > > > > >template <class Key, class Value> class HashTable; > >static const int KEEP_STREAM = 100; >static const int CLOSE_STREAM = 101; >static const int MAX_SOCKS_INHERITED = 4; >static char* EMPTY_DESCRIP = "<NULL>"; > > > > > >typedef int (*CommandHandler)(Service*,int,Stream*); > > >typedef int (Service::*CommandHandlercpp)(int,Stream*); > > >typedef int (*SignalHandler)(Service*,int); > > >typedef int (Service::*SignalHandlercpp)(int); > > >typedef int (*SocketHandler)(Service*,Stream*); > > >typedef int (Service::*SocketHandlercpp)(Stream*); > > >typedef int (*PipeHandler)(Service*,int); > > >typedef int (Service::*PipeHandlercpp)(int); > > >typedef int (*ReaperHandler)(Service*,int pid,int exit_status); > > >typedef int (Service::*ReaperHandlercpp)(int pid,int exit_status); > > >typedef int (*ThreadStartFunc)(void *,Stream*); > > > > >typedef void (*TimeSkipFunc)(void *,int); > > > > > >typedef int (*DataThreadWorkerFunc)(int data_n1, int data_n2, void * data_vp); > > > > >typedef int (*DataThreadReaperFunc)(int data_n1, int data_n2, void * data_vp, int exit_status); > > >typedef enum { > HANDLE_READ=1, > HANDLE_WRITE, > HANDLE_READ_WRITE >} HandlerType; ># 143 "condor_daemon_core.h" >const int DCJOBOPT_SUSPEND_ON_EXEC = (1<<1); >const int DCJOBOPT_NO_ENV_INHERIT = (1<<2); > > > > > > > >struct FamilyInfo { > > int max_snapshot_interval; > const char* login; > > gid_t* group_ptr; > > > FamilyInfo() { > max_snapshot_interval = -1; > login = __null; > > group_ptr = __null; > > } >}; ># 178 "condor_daemon_core.h" >int BindAnyCommandPort(ReliSock *rsock, SafeSock *ssock); ># 204 "condor_daemon_core.h" >bool InitCommandSockets(int port, ReliSock *rsock, SafeSock *ssock, > bool fatal); ># 216 "condor_daemon_core.h" >extern char *mySubSystem; > >class DCSignalMsg: public DCMsg { > public: > DCSignalMsg(pid_t pid, int s): DCMsg((60000 +0)) > {m_pid = pid; m_signal = s; m_messenger_delivery = false;} > > int theSignal() {return m_signal;} > pid_t thePid() {return m_pid;} > > char const *signalName(); > > bool codeMsg( DCMessenger *messenger, Sock *sock ); > > bool writeMsg( DCMessenger *messenger, Sock *sock ) > {return codeMsg(messenger,sock);} > bool readMsg( DCMessenger *messenger, Sock *sock ) > {return codeMsg(messenger,sock);} > > virtual void reportFailure( DCMessenger *messenger ); > virtual void reportSuccess( DCMessenger *messenger ); > > bool messengerDelivery() {return m_messenger_delivery;} > void messengerDelivery(bool flag) {m_messenger_delivery = flag;} > > private: > pid_t m_pid; > int m_signal; > > > bool m_messenger_delivery; >}; ># 257 "condor_daemon_core.h" >class DaemonCore : public Service >{ > friend class TimerManager; > friend class CreateProcessForkit; > > > > > friend int main(int, char**); > > > public: > > > > > > > DaemonCore (int PidSize = 0, int ComSize = 0, int SigSize = 0, > int SocSize = 0, int ReapSize = 0, int PipeSize = 0); > ~DaemonCore(); > void Driver(); > > > > > int ReInit(); > > > > > > void reconfig(); > > > > > > > int Verify (DCpermission perm, const struct sockaddr_in *sin, const char * fqu); > int AddAllowHost( const char* host, DCpermission perm ); > > > > void clearSession(pid_t pid); ># 317 "condor_daemon_core.h" > int Register_Command (int command, > char * com_descrip, > CommandHandler handler, > char * handler_descrip, > Service * s = __null, > DCpermission perm = ALLOW, > int dprintf_flag = (1<<19)); ># 335 "condor_daemon_core.h" > int Register_Command (int command, > char * com_descript, > CommandHandlercpp handlercpp, > char * handler_descrip, > Service * s, > DCpermission perm = ALLOW, > int dprintf_flag = (1<<19)); > > > > > > int Cancel_Command (int command); > > > > > int InfoCommandPort(); ># 361 "condor_daemon_core.h" > char* InfoCommandSinfulString (int pid = -1); ># 376 "condor_daemon_core.h" > char * InfoCommandSinfulStringMyself(bool usePrivateAddress); > > > > > > > > const char* publicNetworkIpAddr(void); ># 394 "condor_daemon_core.h" > const char* privateNetworkIpAddr(void); > > > > > > const char* privateNetworkName(void); ># 411 "condor_daemon_core.h" > PidEnvID* InfoEnvironmentID(PidEnvID *penvid, int pid = -1); > > > > > > int ServiceCommandSocket(); > > > > > int InServiceCommandSocket() { > return inServiceCommandSocket_flag; > } ># 442 "condor_daemon_core.h" > int Register_Signal (int sig, > char * sig_descrip, > SignalHandler handler, > char * handler_descrip, > Service* s = __null, > DCpermission perm = ALLOW); ># 458 "condor_daemon_core.h" > int Register_Signal (int sig, > char * sig_descript, > SignalHandlercpp handlercpp, > char * handler_descrip, > Service* s, > DCpermission perm = ALLOW); > > > > > > int Cancel_Signal (int sig); > > > > > > > int Block_Signal (int sig) { > return(HandleSig(2,sig)); > } > > > > > > int Unblock_Signal (int sig) { > return(HandleSig(3,sig)); > } > > > > > > > bool Send_Signal (pid_t pid, int sig); > > > > > > > > void Send_Signal_nonblocking(classy_counted_ptr<DCSignalMsg> msg); ># 518 "condor_daemon_core.h" > void Set_Default_Reaper( int reaper_id ); ># 527 "condor_daemon_core.h" > int Register_Reaper (char * reap_descrip, > ReaperHandler handler, > char * handler_descrip, > Service* s = __null); ># 539 "condor_daemon_core.h" > int Register_Reaper (char * reap_descript, > ReaperHandlercpp handlercpp, > char * handler_descrip, > Service* s); ># 552 "condor_daemon_core.h" > int Reset_Reaper (int rid, > char * reap_descrip, > ReaperHandler handler, > char * handler_descrip, > Service * s = __null); ># 566 "condor_daemon_core.h" > int Reset_Reaper (int rid, > char * reap_descript, > ReaperHandlercpp handlercpp, > char * handler_descrip, > Service* s); > > > > > > int Cancel_Reaper (int rid); > > > > > > > static const char *GetExceptionString(int signal); > > > > > > int Was_Not_Responding(pid_t pid); ># 604 "condor_daemon_core.h" > int Register_Socket (Stream* iosock, > const char * iosock_descrip, > SocketHandler handler, > const char * handler_descrip, > Service * s = __null, > DCpermission perm = ALLOW); ># 620 "condor_daemon_core.h" > int Register_Socket (Stream* iosock, > const char * iosock_descrip, > SocketHandlercpp handlercpp, > const char * handler_descrip, > Service* s, > DCpermission perm = ALLOW); > > > > > > > int Register_Command_Socket (Stream* iosock, > const char * descrip = __null ) { > return Register_Socket (iosock, > descrip, > (SocketHandler)__null, > (SocketHandlercpp)__null, > "DC Command Handler", > __null, > ALLOW, > 0); > } > > > > > > int Cancel_Socket ( Stream * insock ); > > > int Cancel_And_Close_All_Sockets(void); > > > > > > int RegisteredSocketCount(); ># 672 "condor_daemon_core.h" > bool TooManyRegisteredSockets(int fd=-1,MyString *msg=__null,int num_fds=1); > > > > > > int FileDescriptorSafetyLimit(); > > > > > > int Lookup_Socket ( Stream * iosock ); ># 699 "condor_daemon_core.h" > int Register_Pipe (int pipe_end, > char * pipe_descrip, > PipeHandler handler, > char * handler_descrip, > Service * s = __null, > HandlerType handler_type = HANDLE_READ, > DCpermission perm = ALLOW); ># 716 "condor_daemon_core.h" > int Register_Pipe (int pipe_end, > char * pipe_descrip, > PipeHandlercpp handlercpp, > char * handler_descrip, > Service* s, > HandlerType handler_type = HANDLE_READ, > DCpermission perm = ALLOW); > > > > > > int Cancel_Pipe ( int pipe_end ); > > > int Cancel_And_Close_All_Pipes(void); > > > > int Create_Pipe( int *pipe_ends, > bool can_register_read = false, bool can_register_write = false, > bool nonblocking_read = false, bool nonblocking_write = false, > unsigned int psize = 4096); > > > > int Inherit_Pipe( int p, bool write, bool can_register, bool nonblocking, int psize = 4096); > > int Read_Pipe(int pipe_end, void* buffer, int len); > > int Write_Pipe(int pipe_end, const void* buffer, int len); > > > > > > int Close_Pipe(int pipe_end); ># 766 "condor_daemon_core.h" > int Register_Timer (unsigned deltawhen, > Event event, > char * event_descrip, > Service* s = __null); ># 779 "condor_daemon_core.h" > int Register_Timer (unsigned deltawhen, > unsigned period, > Event event, > char * event_descrip, > Service* s = __null); ># 792 "condor_daemon_core.h" > int Register_Timer (unsigned deltawhen, > Eventcpp event, > char * event_descrip, > Service* s); ># 805 "condor_daemon_core.h" > int Register_Timer (unsigned deltawhen, > unsigned period, > Eventcpp event, > char * event_descrip, > Service * s); > > > > > > int Cancel_Timer ( int id ); > > > > > > > > int Reset_Timer ( int id, unsigned when, unsigned period = 0 ); > > > > > > > void Dump (int flag, char* indent = __null ); ># 841 "condor_daemon_core.h" > inline pid_t getpid() { return this->mypid; }; > > > > > inline pid_t getppid() { return ppid; }; > > > > > > int Is_Pid_Alive (pid_t pid); > > > > > > int Shutdown_Fast(pid_t pid); > > > > > > int Shutdown_Graceful(pid_t pid); > > > > > > int Suspend_Process(pid_t pid); > > > > > > int Continue_Process(pid_t pid); ># 923 "condor_daemon_core.h" > int Create_Process ( > const char *name, > ArgList const &arglist, > priv_state priv = PRIV_UNKNOWN, > int reaper_id = 1, > int want_commanand_port = 1, > Env const *env = __null, > const char *cwd = __null, > FamilyInfo *family_info = __null, > Stream *sock_inherit_list[] = __null, > int std[] = __null, > int fd_inherit_list[] = __null, > int nice_inc = 0, > sigset_t *sigmask = __null, > int job_opt_mask = 0, > size_t *core_hard_limit = __null > ); > > > > > > static const int ERRNO_EXEC_AS_ROOT; > static const int ERRNO_PID_COLLISION; > static const int ERRNO_REGISTRATION_FAILED; > > > > int Get_Family_Usage(pid_t, ProcFamilyUsage&, bool full = false); > int Suspend_Family(pid_t); > int Continue_Family(pid_t); > int Kill_Family(pid_t); > > > > > > > void Proc_Family_Init(); > > > > > > void Proc_Family_Cleanup(); ># 980 "condor_daemon_core.h" > int SetDataPtr( void *data ); ># 990 "condor_daemon_core.h" > int Register_DataPtr( void *data ); ># 999 "condor_daemon_core.h" > void *GetDataPtr(); ># 1008 "condor_daemon_core.h" > SecMan* getSecMan(); > KeyCache* getKeyCache(); ># 1056 "condor_daemon_core.h" > int Create_Thread( > ThreadStartFunc start_func, > void *arg = __null, > Stream *sock = __null, > int reaper_id = 1 > ); > > > > > bool DoFakeCreateThread() { return m_fake_create_thread; } > > > int Suspend_Thread(int tid); > > > int Continue_Thread(int tid); > > > int Kill_Thread(int tid); > > > > > > > > void Forked_Child_Wants_Exit_By_Exec( bool exit_by_exec ); > > Stream **GetInheritedSocks() { return (Stream **)inheritedSocks; } ># 1095 "condor_daemon_core.h" > priv_state Register_Priv_State( priv_state priv ); ># 1104 "condor_daemon_core.h" > bool CheckConfigSecurity( const char* config, Sock* sock ); > bool CheckConfigAttrSecurity( const char* attr, Sock* sock ); > > > > > void invalidateSessionCache(); > > > bool set_cookie( int len, unsigned char* data ); > bool get_cookie( int &len, unsigned char* &data ); > bool cookie_is_valid( unsigned char* data ); > > > > > bool GetPeacefulShutdown(); > void SetPeacefulShutdown(bool value); ># 1135 "condor_daemon_core.h" > void RegisterTimeSkipCallback(TimeSkipFunc fnc, void * data); > void UnregisterTimeSkipCallback(TimeSkipFunc fnc, void * data); > > > > > > void Only_Allow_Soap(int duration); ># 1203 "condor_daemon_core.h" > int soap_ssl_sock; > > MapFile * mapfile; > > SelfMonitorData monitor_data; > > char *localAdFile; > void UpdateLocalAd(ClassAd *daemonAd); ># 1220 "condor_daemon_core.h" > void publish(ClassAd *ad); > > > > > > > CollectorList* getCollectorList(void); ># 1241 "condor_daemon_core.h" > int sendUpdates(int cmd, ClassAd* ad1, ClassAd* ad2 = __null, > bool nonblock = false); > > > > > > > > bool wantsRestart( void ); > > private: > > bool m_wants_dc_udp; > ReliSock* dc_rsock; > SafeSock* dc_ssock; > > void Inherit( void ); > void InitDCCommandSocket( int command_port ); > > int HandleSigCommand(int command, Stream* stream); > int HandleReq(int socki); > int HandleReq(Stream *insock); > int HandleReqSocketTimerHandler(); > int HandleReqSocketHandler(Stream *stream); > int HandleSig(int command, int sig); > > friend class FakeCreateThreadReaperCaller; > void CallReaper(int reaper_id, char const *whatexited, pid_t pid, int exit_status); > > int HandleProcessExitCommand(int command, Stream* stream); > int HandleProcessExit(pid_t pid, int exit_status); > int HandleDC_SIGCHLD(int sig); > int HandleDC_SERVICEWAITPIDS(int sig); > > int Register_Command(int command, char *com_descip, > CommandHandler handler, > CommandHandlercpp handlercpp, > char *handler_descrip, > Service* s, > DCpermission perm, > int dprintf_flag, > int is_cpp); > > int Register_Signal(int sig, > char *sig_descip, > SignalHandler handler, > SignalHandlercpp handlercpp, > char *handler_descrip, > Service* s, > DCpermission perm, > int is_cpp); > > int Register_Socket(Stream* iosock, > const char *iosock_descrip, > SocketHandler handler, > SocketHandlercpp handlercpp, > const char *handler_descrip, > Service* s, > DCpermission perm, > int is_cpp); > > > > > void incrementPendingSockets() { nPendingSockets++; } > > > > void decrementPendingSockets() { nPendingSockets--; } > > int Register_Pipe(int pipefd, > char *pipefd_descrip, > PipeHandler handler, > PipeHandlercpp handlercpp, > char *handler_descrip, > Service* s, > HandlerType handler_type, > DCpermission perm, > int is_cpp); > > int Register_Reaper(int rid, > char *reap_descip, > ReaperHandler handler, > ReaperHandlercpp handlercpp, > char *handler_descrip, > Service* s, > int is_cpp); > > bool Register_Family(pid_t child_pid, > pid_t parent_pid, > int max_snapshot_interval, > PidEnvID* penvid, > const char* login, > gid_t* group); > > void CheckForTimeSkip(time_t time_before, time_t okay_delta); > > > > bool m_use_clone_to_create_processes; > bool UseCloneToCreateProcesses() { return m_use_clone_to_create_processes; } > > > void Send_Signal(classy_counted_ptr<DCSignalMsg> msg, bool nonblocking); > > MyString GetCommandsInAuthLevel(DCpermission perm); > > struct CommandEnt > { > int num; > CommandHandler handler; > CommandHandlercpp handlercpp; > int is_cpp; > DCpermission perm; > Service* service; > char* command_descrip; > char* handler_descrip; > void* data_ptr; > int dprintf_flag; > }; > > void DumpCommandTable(int, const char* = __null); > int maxCommand; > int nCommand; > CommandEnt* comTable; > > struct SignalEnt > { > int num; > SignalHandler handler; > SignalHandlercpp handlercpp; > int is_cpp; > DCpermission perm; > Service* service; > int is_blocked; > > > volatile int is_pending; > char* sig_descrip; > char* handler_descrip; > void* data_ptr; > }; > void DumpSigTable(int, const char* = __null); > int maxSig; > int nSig; > SignalEnt* sigTable; > volatile int sent_signal; > > struct SockEnt > { > Sock* iosock; > SocketHandler handler; > SocketHandlercpp handlercpp; > int is_cpp; > DCpermission perm; > Service* service; > char* iosock_descrip; > char* handler_descrip; > void* data_ptr; > bool is_connect_pending; > bool call_handler; > }; > void DumpSocketTable(int, const char* = __null); > int maxSocket; > int nSock; > int nPendingSockets; > ExtArray<SockEnt> *sockTable; > int initial_command_sock; > struct soap *soap; > time_t only_allow_soap; > > > > > int file_descriptor_safety_limit; > > bool m_fake_create_thread; > > > > > typedef int PipeHandle; > > ExtArray<PipeHandle>* pipeHandleTable; > int maxPipeHandleIndex; > int pipeHandleTableInsert(PipeHandle); > void pipeHandleTableRemove(int); > > > struct PidEntry; > struct PipeEnt > { > int index; > PipeHandler handler; > PipeHandlercpp handlercpp; > int is_cpp; > DCpermission perm; > Service* service; > char* pipe_descrip; > char* handler_descrip; > void* data_ptr; > bool call_handler; > HandlerType handler_type; > PidEntry* pentry; > bool in_handler; > }; > > int maxPipe; > int nPipe; > ExtArray<PipeEnt> *pipeTable; > > struct ReapEnt > { > int num; > ReaperHandler handler; > ReaperHandlercpp handlercpp; > int is_cpp; > Service* service; > char* reap_descrip; > char* handler_descrip; > void* data_ptr; > }; > void DumpReapTable(int, const char* = __null); > int maxReap; > int nReap; > ReapEnt* reapTable; > int defaultReaper; > > struct PidEntry > { > pid_t pid; > int new_process_group; ># 1484 "condor_daemon_core.h" > char sinful_string[28]; > char parent_sinful_string[28]; > int is_local; > int parent_is_local; > int reaper_id; > int hung_tid; > int was_not_responding; > > > > PidEnvID penvid; > }; > > typedef HashTable <pid_t, PidEntry *> PidHashTable; > PidHashTable* pidTable; > pid_t mypid; > pid_t ppid; > > ProcFamilyInterface* m_proc_family; ># 1520 "condor_daemon_core.h" > static TimerManager t; > void DumpTimerList(int, char* = __null); > > SecMan *sec_man; > > int _cookie_len, _cookie_len_old; > unsigned char *_cookie_data, *_cookie_data_old; > > IpVerify ipverify; > > void free_descrip(char *p) { if(p && p != EMPTY_DESCRIP) free(p); } > > struct in_addr negotiator_sin_addr; ># 1544 "condor_daemon_core.h" > int async_pipe[2]; > volatile int async_sigs_unblocked; > > volatile bool async_pipe_empty; > > > struct WaitpidEntry_s > { > pid_t child_pid; > int exit_status; > bool operator==( const struct WaitpidEntry_s &target) { > if(child_pid == target.child_pid) { > return true; > } > return false; > } > > }; > typedef struct WaitpidEntry_s WaitpidEntry; > Queue<WaitpidEntry> WaitpidQueue; > > Stream *inheritedSocks[MAX_SOCKS_INHERITED+1]; > > > int HandleChildAliveCommand(int command, Stream* stream); > int HungChildTimeout(); > int SendAliveToParent(); > unsigned int max_hang_time; > int send_child_alive_timer; > > > void CheckPrivState( void ); > > > void **curr_dataptr; > void **curr_regdataptr; > int inServiceCommandSocket_flag; > > > > static char **ParseArgsString(const char *env); > > > priv_state Default_Priv_State; > > > > > > void InitSettableAttrsLists( void ); > bool InitSettableAttrsList( const char* subsys, int i ); > StringList* SettableAttrsLists[LAST_PERM]; > > bool peaceful_shutdown; > > struct TimeSkipWatcher { > TimeSkipFunc fn; > void * data; > }; > > List<TimeSkipWatcher> m_TimeSkipWatchers; ># 1620 "condor_daemon_core.h" > bool evalExpr( ClassAd* ad, const char* param_name, > const char* attr_name, const char* message ); > > CollectorList* m_collector_list; > > > > > > > > void initCollectorList(void); > > bool m_wants_restart; > bool m_in_daemon_shutdown; > bool m_in_daemon_shutdown_fast; > > char* m_private_network_name; > >}; ># 1650 "condor_daemon_core.h" >extern void DC_Exit( int status ); > > > > > > >extern void DC_Skip_Auth_Init(); > > > > > > >extern DaemonCore* daemonCore; ># 1706 "condor_daemon_core.h" >int Create_Thread_With_Data(DataThreadWorkerFunc Worker, DataThreadReaperFunc Reaper, > int data_n1 = 0, int data_n2 = 0, void * data_vp = 0); > > > > > >char *global_dc_sinful( void ); ># 63 "daemon_core.C" 2 > > > ># 1 "../condor_includes/condor_debug.h" 1 ># 67 "daemon_core.C" 2 > > > ># 1 "../condor_includes/condor_config.h" 1 ># 26 "../condor_includes/condor_config.h" ># 1 "../condor_c++_util/MyString.h" 1 ># 27 "../condor_includes/condor_config.h" 2 > > > > > > >typedef struct bucket { > char *name; > char *value; > int used; > struct bucket *next; >} BUCKET; > > > >class ParamValue { > public: > > > MyString name; > > MyString value; > > MyString filename; > > int lnum; > > > MyString source; > > ParamValue() { > name = ""; > value = ""; > filename = ""; > lnum = -1; > source = ""; > } > > ParamValue(const ParamValue &old) { > name = old.name; > value = old.value; > filename = old.filename; > lnum = old.lnum; > source = old.source; > } > > ParamValue& operator=(const ParamValue &rhs) { > if (this == &rhs) { > return *this; > } > > name = rhs.name; > value = rhs.value; > filename = rhs.filename; > lnum = rhs.lnum; > > return *this; > } >}; ># 97 "../condor_includes/condor_config.h" > extern MyString global_config_source; > extern MyString global_root_config_source; > extern StringList local_config_sources; > > ExtArray<ParamValue>* param_all(void); > int param_integer( const char *name, int default_value, > int min_value = (-2147483647 - 1), int max_value = 2147483647 ); > double param_double( const char *name, double default_value, > double min_value = 2.2250738585072014e-308, double max_value = 1.7976931348623157e+308 ); > bool param_boolean( const char *name, const bool default_value, bool do_log = true ); > bool param_boolean_expr( const char *name, bool default_value, ClassAd const *me, ClassAd const *target ); > bool param_get_location(const char *parameter, MyString &filename, > int &line_number); > > > > >extern "C" { > void config( int wantsQuiet=0 , bool ignore_invalid_entry = false ); > void config_host( char* host=__null ); > void config_fill_ad( ClassAd*, const char* prefix=__null ); > void condor_net_remap_config( bool force_param=false ); > int param_integer_c( const char *name, int default_value, > int min_value, int max_value); > int param_boolean_int( const char *name, int default_value ); > int set_persistent_config(char *admin, char *config); > int set_runtime_config(char *admin, char *config); ># 141 "../condor_includes/condor_config.h" > char * expand_macro ( const char *value, BUCKET *table[], int table_size, > char *self=__null ); > > > > > struct hash_iter { > BUCKET ** table; > int table_size; > int index; > bucket * current; > }; > typedef hash_iter * HASHITER; ># 170 "../condor_includes/condor_config.h" > HASHITER hash_iter_begin(BUCKET ** table, int table_size); > > > > int hash_iter_done(HASHITER iter); > > > > > > > > int hash_iter_next(HASHITER iter); > > > > > > char * hash_iter_key(HASHITER iter); > > > > > > char * hash_iter_value(HASHITER iter); > > > > > int hash_iter_used_value(HASHITER iter); > > > > > > void hash_iter_delete(HASHITER * iter); > > > > > int get_var( register char *value, register char **leftp, > register char **namep, register char **rightp, char *self=__null, > bool getdollardollar=false, int search_pos=0); > int get_special_var( const char *prefix, bool only_id_chars, register char *value, register char **leftp, > register char **namep, register char **rightp); >} > > > >extern "C" { > > char * get_tilde(void); > char * param ( const char *name ); > > > > > > > void insert ( const char *name, const char *value, BUCKET *table[], int table_size ); > > > > void set_macro_used ( const char *name, int used, BUCKET *table[], int table_size ); ># 242 "../condor_includes/condor_config.h" > char * lookup_macro ( const char *name, BUCKET *table[], int table_size ); > > > > > > char * macro_expand ( const char *name ); > void init_config ( void ); > void clear_config ( void ); > void set_debug_flags( char * ); > void config_insert( const char*, const char* ); > int param_boolean_int( const char *name, int default_value ); > >} ># 71 "daemon_core.C" 2 > ># 1 "../condor_c++_util/condor_getcwd.h" 1 ># 23 "../condor_c++_util/condor_getcwd.h" >class MyString; > > > > > >bool condor_getcwd(MyString &path); ># 73 "daemon_core.C" 2 ># 1 "../h/strupr.h" 1 ># 26 "../h/strupr.h" >extern "C" { > > >char* strupr( char * ); >char* strlwr( char * ); > > >} ># 74 "daemon_core.C" 2 ># 1 "../condor_c++_util/sig_name.h" 1 ># 23 "../condor_c++_util/sig_name.h" >extern "C" { > >int signalNumber( const char* signame ); >const char* signalName( int sig ); > >} ># 75 "daemon_core.C" 2 > > ># 1 "../condor_includes/condor_distribution.h" 1 ># 24 "../condor_includes/condor_distribution.h" >static const int MAX_DISTRIBUTION_NAME = 20; > >class Distribution >{ > public: > int Init( int argc, char **argv ); > > > const char *Get(void) { return distribution; }; > const char *GetUc() { return distribution_uc; }; > const char *GetCap() { return distribution_cap; }; > int GetLen() { return distribution_length; }; > > Distribution( ); > ~Distribution( ); > void SetDistribution( const char *name = "condor" ); > > private: > char distribution[ MAX_DISTRIBUTION_NAME + 1 ]; > char distribution_uc[ MAX_DISTRIBUTION_NAME + 1]; > char distribution_cap[ MAX_DISTRIBUTION_NAME + 1]; > int distribution_length; >}; > >extern Distribution myDistribution, *myDistro; ># 78 "daemon_core.C" 2 ># 1 "../condor_includes/condor_environ.h" 1 ># 24 "../condor_includes/condor_environ.h" ># 1 "../condor_includes/condor_auth_x509.h" 1 ># 25 "../condor_includes/condor_environ.h" 2 ># 37 "../condor_includes/condor_environ.h" >typedef enum >{ > ENV_INHERIT = 0, > ENV_STACKSIZE, > ENV_CORESIZE, > ENV_GZIP, > ENV_PVM_ROOT, > ENV_UG_IDS, > ENV_PATH, > ENV_ID, > ENV_SCHEDD_NAME, > ENV_CORE_SIZE, > ENV_NOCHECK, > ENV_PARALLEL_SHADOW_SINFUL, > ENV_LOWPORT, > ENV_HIGHPORT, > ENV_CONFIG, > ENV_CONFIG_ROOT, > ENV_RENDEZVOUS, > ENV_DAEMON_DEATHTIME, > ENV_PARENT_ID, > >} CONDOR_ENVIRON; > > >int EnvInit( void ); >const char *EnvGetName( CONDOR_ENVIRON ); ># 79 "daemon_core.C" 2 ># 1 "../condor_c++_util/condor_version.h" 1 ># 22 "../condor_c++_util/condor_version.h" >extern "C" { > > >const char* CondorVersion( void ); >const char* CondorPlatform( void ); > > >} ># 80 "daemon_core.C" 2 ># 1 "../condor_c++_util/setenv.h" 1 ># 23 "../condor_c++_util/setenv.h" >class MyString; ># 33 "../condor_c++_util/setenv.h" >int SetEnv( const char *key, const char *value); > > > > > > >int SetEnv( const char *env_var ); > > > > > >int UnsetEnv( const char *env_var ); ># 55 "../condor_c++_util/setenv.h" >const char *GetEnv( const char *env_var ); ># 64 "../condor_c++_util/setenv.h" >const char *GetEnv( const char *env_var, MyString &result ); ># 81 "daemon_core.C" 2 ># 1 "../condor_c++_util/my_popen.h" 1 ># 24 "../condor_c++_util/my_popen.h" >extern "C" { > >FILE *my_popenv( char *const argv[], const char * mode, int want_stderr ); >int my_pclose( FILE *fp ); > >int my_systemv( char *const argv[] ); > >int my_spawnl( const char* cmd, ... ); >int my_spawnv( const char* cmd, char *const argv[] ); > > > > > > > >} > > > > >FILE *my_popen( ArgList &args, const char * mode, int want_stderr ); >int my_system( ArgList &args ); ># 82 "daemon_core.C" 2 ># 1 "../condor_privsep/condor_privsep.h" 1 ># 26 "../condor_privsep/condor_privsep.h" >class MyString; >class ArgList; >class Env; >struct FamilyInfo; > > > >bool privsep_enabled(); > > > >bool privsep_create_pipes(FILE*& in_fp, > int& in_fd_for_child, > FILE*& err_fp, > int& err_fd_for_child); > > > > >void privsep_get_switchboard_command(const char* op, > int in_fd_for_child, > int err_fd_for_child, > MyString& cmd_path, > ArgList& args); > > > >bool privsep_get_switchboard_response(FILE* err_fp); > > > > > >void privsep_exec_set_uid(FILE* fp, uid_t uid); >void privsep_exec_set_path(FILE* fp, const char* path); >void privsep_exec_set_args(FILE* fp, ArgList& args); >void privsep_exec_set_env(FILE* fp, Env& env); >void privsep_exec_set_iwd(FILE* fp, const char* iwd); >void privsep_exec_set_inherit_fd(FILE* fp, int fd); >void privsep_exec_set_std_file(FILE* fp, int target_fd, const char* path); >void privsep_exec_set_is_std_univ(FILE* fp); > >void privsep_exec_set_tracking_group(FILE* fp, gid_t tracking_group); > > > > >int privsep_spawn_procd(const char* path, > ArgList& args, > int std_fds[3], > int reaper_id); > > > >int privsep_launch_user_job(uid_t uid, > const char* path, > ArgList& args, > Env& env, > const char* iwd, > int std_fds[3], > const char* std_file_names[3], > int nice_inc, > size_t* core_size_ptr, > int reaper_id, > int dc_job_opts, > FamilyInfo* family_info); > > > >bool privsep_create_dir(uid_t uid, const char* pathname); > > > >bool privsep_remove_dir(const char* pathname); > > > > > > >bool privsep_chown_dir(uid_t target_uid, > uid_t source_uid, > const char* pathname); ># 83 "daemon_core.C" 2 > > > > > > > ># 1 "../condor_c++_util/directory.h" 1 ># 26 "../condor_c++_util/directory.h" ># 1 "/usr/include/dirent.h" 1 3 4 ># 28 "/usr/include/dirent.h" 3 4 >extern "C" { ># 62 "/usr/include/dirent.h" 3 4 ># 1 "/usr/include/bits/dirent.h" 1 3 4 ># 23 "/usr/include/bits/dirent.h" 3 4 >struct dirent > { > > __ino_t d_ino; > __off_t d_off; > > > > > unsigned short int d_reclen; > unsigned char d_type; > char d_name[256]; > }; > > >struct dirent64 > { > __ino64_t d_ino; > __off64_t d_off; > unsigned short int d_reclen; > unsigned char d_type; > char d_name[256]; > }; ># 63 "/usr/include/dirent.h" 2 3 4 ># 98 "/usr/include/dirent.h" 3 4 >enum > { > DT_UNKNOWN = 0, > > DT_FIFO = 1, > > DT_CHR = 2, > > DT_DIR = 4, > > DT_BLK = 6, > > DT_REG = 8, > > DT_LNK = 10, > > DT_SOCK = 12, > > DT_WHT = 14 > > }; ># 128 "/usr/include/dirent.h" 3 4 >typedef struct __dirstream DIR; > > > > > > >extern DIR *opendir (__const char *__name) __attribute__ ((__nonnull__ (1))); > > > > > > >extern DIR *fdopendir (int __fd); > > > > > > > >extern int closedir (DIR *__dirp) __attribute__ ((__nonnull__ (1))); ># 163 "/usr/include/dirent.h" 3 4 >extern struct dirent *readdir (DIR *__dirp) __attribute__ ((__nonnull__ (1))); ># 174 "/usr/include/dirent.h" 3 4 >extern struct dirent64 *readdir64 (DIR *__dirp) __attribute__ ((__nonnull__ (1))); ># 184 "/usr/include/dirent.h" 3 4 >extern int readdir_r (DIR *__restrict __dirp, > struct dirent *__restrict __entry, > struct dirent **__restrict __result) > __attribute__ ((__nonnull__ (1, 2, 3))); ># 201 "/usr/include/dirent.h" 3 4 >extern int readdir64_r (DIR *__restrict __dirp, > struct dirent64 *__restrict __entry, > struct dirent64 **__restrict __result) > __attribute__ ((__nonnull__ (1, 2, 3))); > > > > >extern void rewinddir (DIR *__dirp) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern void seekdir (DIR *__dirp, long int __pos) throw () __attribute__ ((__nonnull__ (1))); > > >extern long int telldir (DIR *__dirp) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int dirfd (DIR *__dirp) throw () __attribute__ ((__nonnull__ (1))); ># 243 "/usr/include/dirent.h" 3 4 ># 1 "/usr/lib/gcc/i386-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 244 "/usr/include/dirent.h" 2 3 4 > > > > > > >extern int scandir (__const char *__restrict __dir, > struct dirent ***__restrict __namelist, > int (*__selector) (__const struct dirent *), > int (*__cmp) (__const void *, __const void *)) > __attribute__ ((__nonnull__ (1, 2))); ># 271 "/usr/include/dirent.h" 3 4 >extern int scandir64 (__const char *__restrict __dir, > struct dirent64 ***__restrict __namelist, > int (*__selector) (__const struct dirent64 *), > int (*__cmp) (__const void *, __const void *)) > __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int alphasort (__const void *__e1, __const void *__e2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 293 "/usr/include/dirent.h" 3 4 >extern int alphasort64 (__const void *__e1, __const void *__e2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int versionsort (__const void *__e1, __const void *__e2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 314 "/usr/include/dirent.h" 3 4 >extern int versionsort64 (__const void *__e1, __const void *__e2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 324 "/usr/include/dirent.h" 3 4 >extern __ssize_t getdirentries (int __fd, char *__restrict __buf, > size_t __nbytes, > __off_t *__restrict __basep) > throw () __attribute__ ((__nonnull__ (2, 4))); ># 341 "/usr/include/dirent.h" 3 4 >extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf, > size_t __nbytes, > __off64_t *__restrict __basep) > throw () __attribute__ ((__nonnull__ (2, 4))); > > > > >} ># 27 "../condor_c++_util/directory.h" 2 > > > > > >class StatWrapper; > >enum si_error_t { SIGood = 0, SINoFile, SIFailure }; > > > > > >class StatInfo >{ >public: > > > > > > > > StatInfo( const char *path ); ># 61 "../condor_c++_util/directory.h" > StatInfo( const char *dirpath, const char *filename ); > > > > > > > > StatInfo( int fd ); ># 92 "../condor_c++_util/directory.h" > ~StatInfo(); ># 102 "../condor_c++_util/directory.h" > si_error_t Error() { return si_error; }; > > > > > > > int Errno() { return si_errno; }; > > > > > > > const char* FullPath() { return (const char*)fullpath; }; > > > > > > > > const char* BaseName() { return (const char*)filename; }; > > > > > > > const char* DirPath() { return (const char*)dirpath; }; > > > > > time_t GetAccessTime() { return access_time; } > > > > > time_t GetModifyTime() { return modify_time; } > > > > > time_t GetCreateTime() { return create_time; } > > > > > filesize_t GetFileSize() { return file_size; } > > > mode_t GetMode(); > > > > > > > bool IsDirectory() { return isdirectory; } > > > > > > bool IsExecutable() { return isexecutable; } > > > > > bool IsSymlink() { return issymlink; } > > > > > > uid_t GetOwner( void ) { return owner; }; > > > > > gid_t GetGroup( void ) { return group; }; > > >private: > si_error_t si_error; > int si_errno; > bool isdirectory; > bool isexecutable; > bool issymlink; > time_t access_time; > time_t modify_time; > time_t create_time; > > uid_t owner; > gid_t group; > > bool mode_set; > mode_t file_mode; > filesize_t file_size; > char* dirpath; > char* filename; > char* fullpath; > void stat_file( const char *path ); > void stat_file( int fd ); > void init( StatWrapper *buf = __null ); > char* make_dirpath( const char* dir ); >}; ># 221 "../condor_c++_util/directory.h" >class Directory >{ >public: ># 239 "../condor_c++_util/directory.h" > Directory( const char *dirpath, priv_state priv = PRIV_UNKNOWN); ># 255 "../condor_c++_util/directory.h" > Directory( StatInfo *info, priv_state priv = PRIV_UNKNOWN); > > > ~Directory(); > > > const char *GetDirectoryPath( void ) { return curr_dir; } ># 272 "../condor_c++_util/directory.h" > const char* Next(); > > > > > > > bool Rewind(); ># 290 "../condor_c++_util/directory.h" > bool Find_Named_Entry( const char *name ); > > > > > time_t GetAccessTime() { return curr ? curr->GetAccessTime() : 0; }; > > > > > time_t GetModifyTime() { return curr ? curr->GetModifyTime() : 0; }; > > > > > time_t GetCreateTime() { return curr ? curr->GetCreateTime() : 0; }; > > > > filesize_t GetFileSize() { return curr ? curr->GetFileSize() : 0; }; > > > > > mode_t GetMode() { return curr ? curr->GetMode() : 0; }; > > > > > > filesize_t GetDirectorySize(); > > > > > const char* GetFullPath() { return curr ? curr->FullPath() : __null; }; > > > > > > > bool IsDirectory() { return curr ? curr->IsDirectory() : false; }; > > > > > bool IsSymlink() {return curr ? curr->IsSymlink() : false; } > > > > > > bool Remove_Current_File( void ); > > > > > > > bool Remove_Full_Path( const char *path ); > > > > > > bool Remove_Entry( const char* name ); > > > > > > > bool Remove_Entire_Directory( void ); ># 398 "../condor_c++_util/directory.h" > bool Recursive_Chown(uid_t src_uid, uid_t dst_uid, gid_t dst_gid, > bool non_root_okay = true); ># 409 "../condor_c++_util/directory.h" > bool chmodDirectories( mode_t mode ); ># 419 "../condor_c++_util/directory.h" > bool Recursive_Chown(const char *username, const char *domain); > > >private: > char *curr_dir; > StatInfo* curr; > bool want_priv_change; > priv_state desired_priv_state; > bool do_remove( const char *path, bool is_curr ); > bool do_remove_dir( const char *path ); > bool do_remove_file( const char *path ); > void initialize( priv_state priv ); > bool rmdirAttempt( const char* path, priv_state priv ); > > > > > > DIR *dirp; > priv_state setOwnerPriv( const char* path ); > uid_t owner_uid; > gid_t owner_gid; > bool owner_ids_inited; > >}; > > > >class DeleteFileLater { > public: > DeleteFileLater (const char * _name) { > filename = _name?strdup(_name):__null; > } > > ~DeleteFileLater () { > if (filename) { > unlink(filename); > free (filename); > } > } > protected: > char * filename; >}; > > > > > > > >bool IsDirectory( const char* path ); > > > > > >bool IsSymlink( const char* path ); ># 486 "../condor_c++_util/directory.h" >char* dircat( const char* dirpath, const char* filename ); > > > > >char* temp_dir_path(); ># 521 "../condor_c++_util/directory.h" >bool recursive_chown(const char * path, > uid_t src_uid, uid_t dst_uid, gid_t dst_gid, bool > non_root_okay = true); > > > > >char * create_temp_file(); ># 537 "../condor_c++_util/directory.h" >bool recursive_chown( const char *path, > const char *username, const char *domain ); ># 91 "daemon_core.C" 2 ># 1 "../condor_io/condor_rw.h" 1 ># 25 "../condor_io/condor_rw.h" ># 1 "../condor_includes/sock.h" 1 ># 26 "../condor_io/condor_rw.h" 2 > > >int condor_read(int fd, char *buf, int sz, int timeout, int flags=0); > > >int condor_write(int fd, char *buf, int sz, int timeout, int flags=0); ># 92 "daemon_core.C" 2 > ># 1 "httpget.h" 1 ># 25 "httpget.h" ># 1 "../condor_includes/stdsoap2.h" 1 ># 26 "httpget.h" 2 > > > >extern char* http_get_id; > >struct http_get_data >{ int (*fpost)(struct soap*, const char*, const char*, int, const char*, const char*, size_t); > int (*fparse)(struct soap*); > int (*fget)(struct soap*); > size_t stat_get; > size_t stat_post; > size_t stat_fail; >}; > >int http_get(struct soap*, struct soap_plugin*, void*); >int soap_get_connect(struct soap*, const char*, const char*); > >char *query(struct soap*); >char *query_key(struct soap*, char**); >char *query_val(struct soap*, char**); >int soap_encode_string(const char*, char*, int); >const char* soap_decode_string(char*, int, const char*); >int http_get_handler(struct soap*); ># 94 "daemon_core.C" 2 > ># 1 "../condor_includes/daemon_core_sock_adapter.h" 1 ># 32 "../condor_includes/daemon_core_sock_adapter.h" ># 1 "../condor_includes/../condor_daemon_core.V6/condor_daemon_core.h" 1 ># 33 "../condor_includes/daemon_core_sock_adapter.h" 2 > >class DaemonCoreSockAdapterClass { > public: > typedef int (DaemonCore::*Register_Socket_fnptr)(Stream*,const char*,SocketHandlercpp,const char*,Service*,DCpermission); > typedef int (DaemonCore::*Cancel_Socket_fnptr)( Stream *sock ); > typedef int (DaemonCore::*Register_DataPtr_fnptr)( void *data ); > typedef void *(DaemonCore::*GetDataPtr_fnptr)(); > typedef int (DaemonCore::*Register_Timer_fnptr)(unsigned deltawhen,Eventcpp event,char * event_descrip,Service* s); > typedef bool (DaemonCore::*TooManyRegisteredSockets_fnptr)(int fd,MyString *msg,int num_fds); > typedef void (DaemonCore::*incrementPendingSockets_fnptr)(); > typedef void (DaemonCore::*decrementPendingSockets_fnptr)(); > > DaemonCoreSockAdapterClass(): m_daemonCore(0) {} > > void EnableDaemonCore( > DaemonCore *dC, > Register_Socket_fnptr Register_Socket_fptr, > Cancel_Socket_fnptr Cancel_Socket_fptr, > Register_DataPtr_fnptr Register_DataPtr_fptr, > GetDataPtr_fnptr GetDataPtrFun_fptr, > Register_Timer_fnptr Register_Timer_fptr, > TooManyRegisteredSockets_fnptr TooManyRegisteredSockets_fptr, > incrementPendingSockets_fnptr incrementPendingSockets_fptr, > decrementPendingSockets_fnptr decrementPendingSockets_fptr) > { > m_daemonCore = dC; > m_Register_Socket_fnptr = Register_Socket_fptr; > m_Cancel_Socket_fnptr = Cancel_Socket_fptr; > m_Register_DataPtr_fnptr = Register_DataPtr_fptr; > m_GetDataPtr_fnptr = GetDataPtrFun_fptr; > m_Register_Timer_fnptr = Register_Timer_fptr; > m_TooManyRegisteredSockets_fnptr = TooManyRegisteredSockets_fptr; > m_incrementPendingSockets_fnptr = incrementPendingSockets_fptr; > m_decrementPendingSockets_fnptr = decrementPendingSockets_fptr; > } > > > > > DaemonCore *m_daemonCore; > Register_Socket_fnptr m_Register_Socket_fnptr; > Cancel_Socket_fnptr m_Cancel_Socket_fnptr; > Register_DataPtr_fnptr m_Register_DataPtr_fnptr; > GetDataPtr_fnptr m_GetDataPtr_fnptr; > Register_Timer_fnptr m_Register_Timer_fnptr; > TooManyRegisteredSockets_fnptr m_TooManyRegisteredSockets_fnptr; > incrementPendingSockets_fnptr m_incrementPendingSockets_fnptr; > decrementPendingSockets_fnptr m_decrementPendingSockets_fnptr; > > int Register_Socket (Stream* iosock, > const char * iosock_descrip, > SocketHandlercpp handlercpp, > const char * handler_descrip, > Service* s, > DCpermission perm = ALLOW) > { > if( !(m_daemonCore) ) { _EXCEPT_Line = 89; _EXCEPT_File = "../condor_includes/daemon_core_sock_adapter.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_daemonCore"); }; > return (m_daemonCore->*m_Register_Socket_fnptr)(iosock,iosock_descrip,handlercpp,handler_descrip,s,perm); > } > > int Cancel_Socket( Stream *stream ) > { > if( !(m_daemonCore) ) { _EXCEPT_Line = 95; _EXCEPT_File = "../condor_includes/daemon_core_sock_adapter.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_daemonCore"); }; > return (m_daemonCore->*m_Cancel_Socket_fnptr)(stream); > } > > int Register_DataPtr( void *data ) > { > if( !(m_daemonCore) ) { _EXCEPT_Line = 101; _EXCEPT_File = "../condor_includes/daemon_core_sock_adapter.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_daemonCore"); }; > return (m_daemonCore->*m_Register_DataPtr_fnptr)(data); > } > void *GetDataPtr() > { > if( !(m_daemonCore) ) { _EXCEPT_Line = 106; _EXCEPT_File = "../condor_includes/daemon_core_sock_adapter.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_daemonCore"); }; > return (m_daemonCore->*m_GetDataPtr_fnptr)(); > } > int Register_Timer (unsigned deltawhen, > Eventcpp event, > char * event_descrip, > Service* s = __null) > { > if( !(m_daemonCore) ) { _EXCEPT_Line = 114; _EXCEPT_File = "../condor_includes/daemon_core_sock_adapter.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_daemonCore"); }; > return (m_daemonCore->*m_Register_Timer_fnptr)( > deltawhen, > event, > event_descrip, > s); > } > bool TooManyRegisteredSockets(int fd=-1,MyString *msg=__null,int num_fds=1) > { > if( !(m_daemonCore) ) { _EXCEPT_Line = 123; _EXCEPT_File = "../condor_includes/daemon_core_sock_adapter.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_daemonCore"); }; > return (m_daemonCore->*m_TooManyRegisteredSockets_fnptr)(fd,msg,num_fds); > } > > bool isEnabled() > { > return m_daemonCore != __null; > } > > void incrementPendingSockets() { > if( !(m_daemonCore) ) { _EXCEPT_Line = 133; _EXCEPT_File = "../condor_includes/daemon_core_sock_adapter.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_daemonCore"); }; > (m_daemonCore->*m_incrementPendingSockets_fnptr)(); > } > > void decrementPendingSockets() { > if( !(m_daemonCore) ) { _EXCEPT_Line = 138; _EXCEPT_File = "../condor_includes/daemon_core_sock_adapter.h"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_daemonCore"); }; > (m_daemonCore->*m_decrementPendingSockets_fnptr)(); > } >}; > >extern DaemonCoreSockAdapterClass daemonCoreSockAdapter; ># 96 "daemon_core.C" 2 > ># 1 "../condor_c++_util/selector.h" 1 ># 26 "../condor_c++_util/selector.h" >class Selector { >public: > Selector(); > ~Selector(); > static int fd_select_size(); > > enum IO_FUNC { > IO_READ, IO_WRITE, IO_EXCEPT > }; > > enum SELECTOR_STATE { > VIRGIN, FDS_READY, TIMED_OUT, SIGNALLED, FAILED > }; > > void reset(); > void add_fd( int fd, IO_FUNC interest ); > void delete_fd( int fd, IO_FUNC interest ); > void set_timeout( time_t sec, long usec = 0 ); > void set_timeout( timeval tv ); > void unset_timeout(); > void execute(); > int select_retval(); > BOOLEAN has_ready(); > BOOLEAN timed_out(); > BOOLEAN signalled(); > BOOLEAN failed(); > BOOLEAN fd_ready( int fd, IO_FUNC interest ); > void display(); > >private: > static int _fd_select_size; > static fd_set *cached_read_fds, *cached_save_read_fds; > static fd_set *cached_write_fds, *cached_save_write_fds; > static fd_set *cached_except_fds, *cached_save_except_fds; > fd_set *read_fds, *save_read_fds; > fd_set *write_fds, *save_write_fds; > fd_set *except_fds, *save_except_fds; > int fd_set_size; > int max_fd; > BOOLEAN timeout_wanted; > struct timeval timeout; > SELECTOR_STATE state; > int _select_retval; >}; ># 98 "daemon_core.C" 2 ># 1 "../condor_c++_util/proc_family_interface.h" 1 ># 24 "../condor_c++_util/proc_family_interface.h" ># 1 "../condor_c++_util/../condor_procapi/procapi.h" 1 ># 28 "../condor_c++_util/../condor_procapi/procapi.h" ># 1 "../condor_includes/condor_system.h" 1 ># 29 "../condor_c++_util/../condor_procapi/procapi.h" 2 > ># 1 "../condor_c++_util/../condor_procapi/processid.h" 1 ># 29 "../condor_c++_util/../condor_procapi/processid.h" >class ProcessId{ > > > public: > > enum { DIFFERENT, SAME, UNCERTAIN, FAILURE, SUCCESS }; > private: > > static const char* SIGNATURE_FORMAT; > static const int NR_OF_SIGNATURE_ENTRIES; > static const int MIN_NR_OF_SIGNATURE_ENTRIES; > static const char* CONFIRMATION_FORMAT; > static const int NR_OF_CONFIRM_ENTRIES; > static const int UNDEF; > static const int MAX_INIT_PID; > > > pid_t pid; > pid_t ppid; > int precision_range; > > > > double time_units_in_sec; > long bday; > long ctl_time; > > bool confirmed; > long confirm_time; > > > public: ># 71 "../condor_c++_util/../condor_procapi/processid.h" > ProcessId(FILE* fp, int& status); > ProcessId(const ProcessId&); > ProcessId& operator =(const ProcessId&); > virtual ~ProcessId(); > > > > > int isConfirmed() const; > > > > > > > int write(FILE* fp) const; > > > > > > int writeConfirmationOnly(FILE* fp) const; > > > > > pid_t getPid() const; ># 107 "../condor_c++_util/../condor_procapi/processid.h" > int computeWaitTime() const; ># 121 "../condor_c++_util/../condor_procapi/processid.h" > int computeConfirmationBuffer() const; > > protected: > > > > > > > virtual void init(pid_t pid, pid_t ppid, int precision_range, > double time_units_in_sec, long bday, long ctltime); > > > > virtual void deepCopy(const ProcessId&); > > > > virtual void noLeak(); > > private: > > ProcessId(); ># 164 "../condor_c++_util/../condor_procapi/processid.h" > ProcessId(pid_t pid, pid_t ppid, int precision_range, double time_units_in_sec, > long bday, long ctltime); ># 187 "../condor_c++_util/../condor_procapi/processid.h" > int confirm(long confirm_time, long ctl_time); ># 206 "../condor_c++_util/../condor_procapi/processid.h" > int isSameProcess(const ProcessId& rhs) const; ># 222 "../condor_c++_util/../condor_procapi/processid.h" > bool isSameProcessConfirmed(const ProcessId& rhs) const; ># 234 "../condor_c++_util/../condor_procapi/processid.h" > bool possibleSameProcessFromId(const ProcessId& rhs) const; ># 247 "../condor_c++_util/../condor_procapi/processid.h" > bool possibleSameProcessFromPpid(const ProcessId& rhs) const; > > > > > void shift(long ctl_time); > > > > > > static long shiftTime(long time, long ctl_to, long ctl_from); > > > > > > > static int extractProcessId( FILE* fp, > pid_t& extracted_pid, > pid_t& extracted_ppid, > int& extracted_precision, > double& extracted_units_in_sec, > long& extracted_bday, > long& extracted_ctl_time > ); > > > > > > > static int extractConfirmation( FILE* fp, long& confirm_time, long& ctl_time ); > > > > > int writeId(FILE* fp) const; > > > > > int writeConfirmation(FILE* fp) const; > > > > friend class ProcAPI; >}; ># 31 "../condor_c++_util/../condor_procapi/procapi.h" 2 ># 39 "../condor_c++_util/../condor_procapi/procapi.h" ># 1 "/usr/include/errno.h" 1 3 4 ># 40 "../condor_c++_util/../condor_procapi/procapi.h" 2 ># 132 "../condor_c++_util/../condor_procapi/procapi.h" >enum { > > PROCAPI_SUCCESS, > > > PROCAPI_FAILURE >}; > > >enum { > > PROCAPI_OK, > > > PROCAPI_FAMILY_NONE, > > > PROCAPI_FAMILY_ALL, > > > PROCAPI_FAMILY_SOME, > > > PROCAPI_NOPID, > > > PROCAPI_PERM, > > > PROCAPI_GARBLED, > > > PROCAPI_UNSPECIFIED, > > > PROCAPI_ALIVE, > > > PROCAPI_DEAD, > > > > PROCAPI_UNCERTAIN >}; ># 186 "../condor_c++_util/../condor_procapi/procapi.h" >typedef long birthday_t; ># 207 "../condor_c++_util/../condor_procapi/procapi.h" >struct procInfo { > > > unsigned long imgsize; > > unsigned long rssize; > > > > > > unsigned long minfault; > > > > > unsigned long majfault; ># 242 "../condor_c++_util/../condor_procapi/procapi.h" > double cpuusage; > > > long user_time; > > long sys_time; > > long age; > > > pid_t pid; > > pid_t ppid; > > > long creation_time; > > > > > > > birthday_t birthday; > > > struct procInfo *next; > > > > uid_t owner; > > > > > > PidEnvID penvid; >}; > > >typedef struct procInfo * piPTR; > > > > > > > >typedef struct procInfoRaw{ > unsigned long imgsize; > unsigned long rssize; > long minfault; > long majfault; > pid_t pid; > pid_t ppid; > > uid_t owner; > > > > > > > > long user_time_1; > long user_time_2; > long sys_time_1; > long sys_time_2; > long creation_time; > long sample_time; ># 325 "../condor_c++_util/../condor_procapi/procapi.h" > unsigned long proc_flags; > >}procInfoRaw; > > > > >struct pidlist { > pid_t pid; > struct pidlist *next; >}; >typedef struct pidlist * pidlistPTR; > >const int PHBUCKETS = 101; ># 349 "../condor_c++_util/../condor_procapi/procapi.h" >struct procHashNode { > > procHashNode(); > > double lasttime; > > double oldtime; > > double oldusage; > > long oldminf; > > long oldmajf; > > long majfaultrate; > > long minfaultrate; > > long creation_time; > > > > > bool garbage; >}; > > > > > >unsigned int pidHashFunc ( const pid_t& pid ); ># 418 "../condor_c++_util/../condor_procapi/procapi.h" >class ProcAPI { > public: > > > ~ProcAPI(); ># 435 "../condor_c++_util/../condor_procapi/procapi.h" > static int getProcInfo ( pid_t pid, piPTR& pi, int &status ); > > > > > > > > static void printProcInfo ( piPTR pi ); > static void printProcInfo ( FILE* fp, piPTR pi ); > > > > > > > static procInfo* getProcInfoList(); > > > > > > static void freeProcInfoList(procInfo*); > > > > > > static int getPidFamily( pid_t pid, > PidEnvID *penvid, > ExtArray<pid_t>& pidFamily, > int &status ); > static int getPidFamilyByLogin( const char *searchLogin, > ExtArray<pid_t>& pidFamily ); > static int getProcSetInfo ( pid_t *pids, > int numpids, > piPTR& pi, > int &status ); > static int isinfamily ( pid_t *, int, PidEnvID*, piPTR ); ># 487 "../condor_c++_util/../condor_procapi/procapi.h" > static piPTR procFamily; > static int buildFamily( pid_t, > PidEnvID *, > int & ); > static void deallocProcFamily(); > static int getNumProcs(); ># 507 "../condor_c++_util/../condor_procapi/procapi.h" > static int createProcessId(pid_t pid, ProcessId*& pProcId, int& status, int* precision_range = 0); > > > > > > > > static int isAlive(const ProcessId& procId, int& status); ># 530 "../condor_c++_util/../condor_procapi/procapi.h" > static int confirmProcessId(ProcessId& procId, int& status); > > private: > > > > ProcAPI() {}; > > static void initpi ( piPTR& ); > > > static uid_t getFileOwner(int fd); ># 556 "../condor_c++_util/../condor_procapi/procapi.h" > static int getProcInfoRaw(pid_t pid, procInfoRaw& procRaw, int &status); > > > > > > > static void initProcInfoRaw(procInfoRaw& procRaw); ># 573 "../condor_c++_util/../condor_procapi/procapi.h" > static int generateControlTime(long& clt_time, int& status); ># 583 "../condor_c++_util/../condor_procapi/procapi.h" > static int generateConfirmTime(long& confirm_time, int& status); > > > > > static int fillProcInfoEnv(piPTR); > > > static int checkBootTime(long now); > > > > static void do_usage_sampling( piPTR& pi, > double ustime, > long majf, > long minf > > > > ); > > static int buildPidList(); > static int buildProcInfoList(); > static long secsSinceEpoch(); > static double convertTimeval ( struct timeval ); > static pid_t getAndRemNextPid(); > static void deallocPidList(); > static void deallocAllProcInfos(); ># 639 "../condor_c++_util/../condor_procapi/procapi.h" > static HashTable <pid_t, procHashNode *> *procHash; > friend unsigned int pidHashFunc ( const pid_t& pid ); > > > static piPTR allProcInfos; > > > > > static pidlistPTR pidList; > > > static int pagesize; > > > > > > static long unsigned boottime; > > > static long boottime_expiration; > > > > > > > > static int MAX_SAMPLES; > static int DEFAULT_PRECISION_RANGE; > > > static double TIME_UNITS_PER_SEC; > >}; ># 25 "../condor_c++_util/proc_family_interface.h" 2 ># 1 "../condor_c++_util/../condor_procd/proc_family_io.h" 1 ># 26 "../condor_c++_util/proc_family_interface.h" 2 > >class ProcFamilyClient; > >class ProcFamilyInterface { > >public: > > static ProcFamilyInterface* create(char* subsys); > > virtual ~ProcFamilyInterface() { } > > > > > > > virtual bool register_from_child() = 0; > > > virtual bool register_subfamily(pid_t, > pid_t, > int) = 0; > > virtual bool track_family_via_environment(pid_t, PidEnvID&) = 0; > > virtual bool track_family_via_login(pid_t, const char*) = 0; > > > virtual bool track_family_via_supplementary_group(pid_t, gid_t&) = 0; > > > virtual bool get_usage(pid_t, ProcFamilyUsage&, bool) = 0; > > virtual bool signal_process(pid_t, int) = 0; > > virtual bool suspend_family(pid_t) = 0; > > virtual bool continue_family(pid_t) = 0; > > virtual bool kill_family(pid_t) = 0; > > virtual bool unregister_family(pid_t) = 0; > >}; ># 99 "daemon_core.C" 2 ># 1 "../condor_includes/condor_netdb.h" 1 ># 28 "../condor_includes/condor_netdb.h" >extern "C" { > > >struct hostent * >condor_gethostbyname(const char *name); > >struct hostent * >condor_gethostbyaddr(const char *addr, socklen_t len, int type); > >int >condor_gethostname(char *name, size_t namelen); > > >} ># 100 "daemon_core.C" 2 > > >const int DaemonCore::ERRNO_EXEC_AS_ROOT = 666666; >const int DaemonCore::ERRNO_PID_COLLISION = 666667; >const int DaemonCore::ERRNO_REGISTRATION_FAILED = 666668; > > > > > ># 1 "../condor_includes/condor_debug.h" 1 ># 111 "daemon_core.C" 2 ># 149 "daemon_core.C" ># 1 "/usr/include/sys/ptrace.h" 1 3 4 ># 25 "/usr/include/sys/ptrace.h" 3 4 >extern "C" { > > >enum __ptrace_request >{ > > > > PTRACE_TRACEME = 0, > > > > PTRACE_PEEKTEXT = 1, > > > > PTRACE_PEEKDATA = 2, > > > > PTRACE_PEEKUSER = 3, > > > > PTRACE_POKETEXT = 4, > > > > PTRACE_POKEDATA = 5, > > > > PTRACE_POKEUSER = 6, > > > > PTRACE_CONT = 7, > > > > PTRACE_KILL = 8, > > > > > PTRACE_SINGLESTEP = 9, > > > > > PTRACE_GETREGS = 12, > > > > > PTRACE_SETREGS = 13, > > > > > PTRACE_GETFPREGS = 14, > > > > > PTRACE_SETFPREGS = 15, > > > > PTRACE_ATTACH = 16, > > > > PTRACE_DETACH = 17, > > > > > PTRACE_GETFPXREGS = 18, > > > > > PTRACE_SETFPXREGS = 19, > > > > PTRACE_SYSCALL = 24, > > > > PTRACE_SETOPTIONS = 0x4200, > > > > PTRACE_GETEVENTMSG = 0x4201, > > > > PTRACE_GETSIGINFO = 0x4202, > > > > PTRACE_SETSIGINFO = 0x4203 > >}; > > > >enum __ptrace_setoptions { > PTRACE_O_TRACESYSGOOD = 0x00000001, > PTRACE_O_TRACEFORK = 0x00000002, > PTRACE_O_TRACEVFORK = 0x00000004, > PTRACE_O_TRACECLONE = 0x00000008, > PTRACE_O_TRACEEXEC = 0x00000010, > PTRACE_O_TRACEVFORKDONE = 0x00000020, > PTRACE_O_TRACEEXIT = 0x00000040, > PTRACE_O_MASK = 0x0000007f >}; > > >enum __ptrace_eventcodes { > PTRACE_EVENT_FORK = 1, > PTRACE_EVENT_VFORK = 2, > PTRACE_EVENT_CLONE = 3, > PTRACE_EVENT_EXEC = 4, > PTRACE_EVENT_VFORK_DONE = 5, > PTRACE_EVENT_EXIT = 6 >}; ># 164 "/usr/include/sys/ptrace.h" 3 4 >extern long int ptrace (enum __ptrace_request __request, ...) throw (); > >} ># 150 "daemon_core.C" 2 > > >int >tdp_wait_stopped_child (pid_t pid) >{ > > int wait_val; > > if (waitpid(pid, &wait_val, 0) == -1) { > dprintf((1<<0),"Wait for Stopped Child wait failed: %d (%s) \n", (*__errno_location ()), strerror ((*__errno_location ()))); > return -1; > } > > if(!((((*(__const int *) &(wait_val))) & 0xff) == 0x7f)) { > return -1; > } > > if (kill(pid, 19) < 0) { > dprintf((1<<0), "Wait for Stopped Child kill failed: %d (%s) \n", (*__errno_location ()), strerror((*__errno_location ()))); > return -1; > } > > if (ptrace(PTRACE_DETACH, pid, 0, 0) < 0) { > dprintf((1<<0), "Wait for Stopped Child detach failed: %d (%s) \n", (*__errno_location ()), strerror((*__errno_location ()))); > return -1; > } > > return 0; >} ># 202 "daemon_core.C" >static unsigned int ZZZZZ = 0; >int ZZZ_always_increase() { > return ZZZZZ++; >} > >static int _condor_exit_with_exec = 0; > > >extern int soap_serve(struct soap*); > >extern void drop_addr_file( void ); >extern char* mySubSystem; > >TimerManager DaemonCore::t; > > >static unsigned int compute_pid_hash(const pid_t &key) >{ > return (unsigned int)key; >} > > > >DaemonCore::DaemonCore(int PidSize, int ComSize,int SigSize, > int SocSize,int ReapSize,int PipeSize) >{ > > if(ComSize < 0 || SigSize < 0 || SocSize < 0 || PidSize < 0) > { > _EXCEPT_Line = 231; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Invalid argument(s) for DaemonCore constructor"); > } > > > > > > daemonCoreSockAdapter.EnableDaemonCore( > this, > > > (DaemonCoreSockAdapterClass::Register_Socket_fnptr)&DaemonCore::Register_Socket, > &DaemonCore::Cancel_Socket, > &DaemonCore::Register_DataPtr, > &DaemonCore::GetDataPtr, > (DaemonCoreSockAdapterClass::Register_Timer_fnptr)&DaemonCore::Register_Timer, > &DaemonCore::TooManyRegisteredSockets, > &DaemonCore::incrementPendingSockets, > &DaemonCore::decrementPendingSockets); > > if ( PidSize == 0 ) > PidSize = DEFAULT_PIDBUCKETS; > pidTable = new PidHashTable(PidSize, compute_pid_hash); > ppid = 0; > > > > > > > > mypid = ::getpid(); > > > > > > > m_proc_family = __null; > > maxCommand = ComSize; > maxSig = SigSize; > maxSocket = SocSize; > maxReap = ReapSize; > maxPipe = PipeSize; > > if(maxCommand == 0) > maxCommand = DEFAULT_MAXCOMMANDS; > > comTable = new CommandEnt[maxCommand]; > if(comTable == __null) { > _EXCEPT_Line = 282; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Out of memory!"); > } > nCommand = 0; > memset(comTable,'\0',maxCommand*sizeof(CommandEnt)); > > if(maxSig == 0) > maxSig = DEFAULT_MAXSIGNALS; > > sigTable = new SignalEnt[maxSig]; > if(sigTable == __null) > { > _EXCEPT_Line = 293; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Out of memory!"); > } > nSig = 0; > memset(sigTable,'\0',maxSig*sizeof(SignalEnt)); > > if(maxSocket == 0) > maxSocket = DEFAULT_MAXSOCKETS; > > sec_man = new SecMan(); > > sockTable = new ExtArray<SockEnt>(maxSocket); > if(sockTable == __null) > { > _EXCEPT_Line = 306; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Out of memory!"); > } > nSock = 0; > nPendingSockets = 0; > SockEnt blankSockEnt; > memset(&blankSockEnt,'\0',sizeof(SockEnt)); > sockTable->fill(blankSockEnt); > > initial_command_sock = -1; > > soap_ssl_sock = -1; > > > if(maxPipe == 0) > maxPipe = DEFAULT_MAXPIPES; > > pipeTable = new ExtArray<PipeEnt>(maxPipe); > if(pipeTable == __null) > { > _EXCEPT_Line = 325; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Out of memory!"); > } > nPipe = 0; > PipeEnt blankPipeEnt; > memset(&blankPipeEnt,'\0',sizeof(PipeEnt)); > blankPipeEnt.index = -1; > pipeTable->fill(blankPipeEnt); > > pipeHandleTable = new ExtArray<PipeHandle>(maxPipe); > maxPipeHandleIndex = -1; > > if(maxReap == 0) > maxReap = DEFAULT_MAXREAPS; > > reapTable = new ReapEnt[maxReap]; > if(reapTable == __null) > { > _EXCEPT_Line = 342; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Out of memory!"); > } > nReap = 0; > memset(reapTable,'\0',maxReap*sizeof(ReapEnt)); > defaultReaper=-1; > > curr_dataptr = __null; > curr_regdataptr = __null; > > send_child_alive_timer = -1; > > > > > > > async_sigs_unblocked = 0; > > async_pipe_empty = 1; > > > m_wants_dc_udp = param_boolean("WANT_UDP_COMMAND_SOCKET", true); > dc_rsock = __null; > dc_ssock = __null; > > inheritedSocks[0] = __null; > inServiceCommandSocket_flag = 0; > > > > int i; > for( i=0; i<LAST_PERM; i++ ) { > SettableAttrsLists[i] = __null; > } > > Default_Priv_State = PRIV_CONDOR; > > _cookie_len_old = _cookie_len = 0; > _cookie_data_old = _cookie_data = __null; > > peaceful_shutdown = false; > > only_allow_soap = 0; > > > > mapfile = __null; > > > > file_descriptor_safety_limit = 0; > > soap = __null; > > localAdFile = __null; > > m_collector_list = __null; > m_wants_restart = true; > m_in_daemon_shutdown = false; > m_in_daemon_shutdown_fast = false; > m_private_network_name = __null; > > > > > m_use_clone_to_create_processes = false; > > > m_fake_create_thread = false; >} > > > >DaemonCore::~DaemonCore() >{ > int i; > > > close(async_pipe[1]); > close(async_pipe[0]); > > > if (comTable != __null ) > { > for (i=0;i<maxCommand;i++) { > free_descrip( comTable[i].command_descrip ); > free_descrip( comTable[i].handler_descrip ); > } > delete []comTable; > } > > if (sigTable != __null) > { > for (i=0;i<maxSig;i++) { > free_descrip( sigTable[i].sig_descrip ); > free_descrip( sigTable[i].handler_descrip ); > } > delete []sigTable; > } > > if (sockTable != __null) > { ># 456 "daemon_core.C" > for (i=0;i<nSock;i++) { > free_descrip( (*sockTable)[i].iosock_descrip ); > free_descrip( (*sockTable)[i].handler_descrip ); > } > delete sockTable; > } > > if (sec_man) { > > > KeyCache * tmp_kt = sec_man->session_cache; > HashTable<MyString,MyString>* tmp_cm = sec_man->command_map; > > delete sec_man; > delete tmp_kt; > delete tmp_cm; > } > > > if( dc_rsock ) { > delete dc_rsock; > } > if( dc_ssock ) { > delete dc_ssock; > } > > if (reapTable != __null) > { > for (i=0;i<maxReap;i++) { > free_descrip( reapTable[i].reap_descrip ); > free_descrip( reapTable[i].handler_descrip ); > } > delete []reapTable; > } > > > PidEntry* pid_entry; > pidTable->startIterations(); > while (pidTable->iterate(pid_entry)) > { > if ( pid_entry ) delete pid_entry; > } > delete pidTable; > > if (m_proc_family != __null) { > delete m_proc_family; > } > > for( i=0; i<LAST_PERM; i++ ) { > if( SettableAttrsLists[i] ) { > delete SettableAttrsLists[i]; > } > } > > if( pipeTable ) { > delete( pipeTable ); > } > > if (pipeHandleTable) { > delete pipeHandleTable; > } > > t.CancelAllTimers(); > > if (_cookie_data) { > free(_cookie_data); > } > if (_cookie_data_old) { > free(_cookie_data_old); > } > > > if( soap ) { > delete soap; > soap = __null; > } > > > if(localAdFile) { > free(localAdFile); > localAdFile = __null; > } > > if (m_collector_list) { > delete m_collector_list; > m_collector_list = __null; > } > > if (m_private_network_name) { > free(m_private_network_name); > m_private_network_name = __null; > } > >} > >void DaemonCore::Set_Default_Reaper( int reaper_id ) >{ > defaultReaper = reaper_id; >} > > > > > > >int DaemonCore::Register_Command(int command, char* com_descrip, > CommandHandler handler, char* handler_descrip, Service* s, > DCpermission perm, int dprintf_flag) >{ > return( Register_Command(command, com_descrip, handler, > (CommandHandlercpp)__null, handler_descrip, s, > perm, dprintf_flag, 0) ); >} > >int DaemonCore::Register_Command(int command, char *com_descrip, > CommandHandlercpp handlercpp, char* handler_descrip, > Service* s, DCpermission perm, int dprintf_flag) >{ > return( Register_Command(command, com_descrip, __null, handlercpp, > handler_descrip, s, perm, dprintf_flag, 1) ); >} > >int DaemonCore::Register_Signal(int sig, char* sig_descrip, > SignalHandler handler, char* handler_descrip, > Service* s, DCpermission perm) >{ > return( Register_Signal(sig, sig_descrip, handler, > (SignalHandlercpp)__null, handler_descrip, s, > perm, 0) ); >} > >int DaemonCore::Register_Signal(int sig, char *sig_descrip, > SignalHandlercpp handlercpp, char* handler_descrip, > Service* s, DCpermission perm) >{ > return( Register_Signal(sig, sig_descrip, __null, handlercpp, > handler_descrip, s, perm, 1) ); >} > >int DaemonCore::RegisteredSocketCount() >{ > return nSock + nPendingSockets; >} > >int DaemonCore::FileDescriptorSafetyLimit() >{ > if( file_descriptor_safety_limit == 0 ) { > > > int file_descriptor_max = Selector::fd_select_size(); > > file_descriptor_safety_limit = file_descriptor_max - file_descriptor_max/5; > if( file_descriptor_safety_limit < MIN_FILE_DESCRIPTOR_SAFETY_LIMIT ) { > > > > file_descriptor_safety_limit = MIN_FILE_DESCRIPTOR_SAFETY_LIMIT; > } > > int p = param_integer( "NETWORK_MAX_PENDING_CONNECTS", 0 ); > if( p!=0 ) { > file_descriptor_safety_limit = p; > } > > dprintf((1<<10),"File descriptor limits: max %d, safe %d\n", > file_descriptor_max, > file_descriptor_safety_limit); > } > > return file_descriptor_safety_limit; >} > >bool DaemonCore::TooManyRegisteredSockets(int fd,MyString *msg,int num_fds) >{ > int registered_socket_count = RegisteredSocketCount(); > int fds_used = registered_socket_count; > int safety_limit = FileDescriptorSafetyLimit(); > > if( safety_limit < 0 ) { > > return false; > } > > > > > > if (fd == -1) { > > fd = safe_open_wrapper( NULL_FILE, 00 ); > if ( fd >= 0 ) { > close( fd ); > } > } > if( fd > fds_used ) { > > fds_used = fd; > } > > > if( num_fds + fds_used > file_descriptor_safety_limit ) { > if( registered_socket_count < MIN_REGISTERED_SOCKET_SAFETY_LIMIT ) { > > > > > > > > if (msg) { > > > > dprintf((1<<21)|(1<<10), > "Ignoring file descriptor safety limit (%d), because " > "only %d sockets are registered (fd is %d)\n", > file_descriptor_safety_limit, > registered_socket_count, > fd ); > } > return false; > } > if(msg) { > msg->sprintf( "file descriptor safety level exceeded: " > " limit %d, " > " registered socket count %d, " > " fd %d", > safety_limit, registered_socket_count, fd ); > } > return true; > } > return false; >} > >int DaemonCore::Register_Socket(Stream* iosock, const char* iosock_descrip, > SocketHandler handler, const char* handler_descrip, > Service* s, DCpermission perm) >{ > return( Register_Socket(iosock, iosock_descrip, handler, > (SocketHandlercpp)__null, handler_descrip, s, > perm, 0) ); >} > >int DaemonCore::Register_Socket(Stream* iosock, const char* iosock_descrip, > SocketHandlercpp handlercpp, const char* handler_descrip, > Service* s, DCpermission perm) >{ > return( Register_Socket(iosock, iosock_descrip, __null, handlercpp, > handler_descrip, s, perm, 1) ); >} > >int DaemonCore::Register_Pipe(int pipe_end, char* pipe_descrip, > PipeHandler handler, char* handler_descrip, > Service* s, HandlerType handler_type, DCpermission perm) >{ > return( Register_Pipe(pipe_end, pipe_descrip, handler, > (PipeHandlercpp)__null, handler_descrip, s, > handler_type, perm, 0) ); >} > >int DaemonCore::Register_Pipe(int pipe_end, char* pipe_descrip, > PipeHandlercpp handlercpp, char* handler_descrip, > Service* s, HandlerType handler_type, DCpermission perm) >{ > return( Register_Pipe(pipe_end, pipe_descrip, __null, handlercpp, > handler_descrip, s, handler_type, perm, 1) ); >} > >int DaemonCore::Register_Reaper(char* reap_descrip, ReaperHandler handler, > char* handler_descrip, Service* s) >{ > return( Register_Reaper(-1, reap_descrip, handler, > (ReaperHandlercpp)__null, handler_descrip, > s, 0) ); >} > >int DaemonCore::Register_Reaper(char* reap_descrip, > ReaperHandlercpp handlercpp, char* handler_descrip, Service* s) >{ > return( Register_Reaper(-1, reap_descrip, __null, handlercpp, > handler_descrip, s, 1) ); >} > >int DaemonCore::Reset_Reaper(int rid, char* reap_descrip, > ReaperHandler handler, char* handler_descrip, Service* s) >{ > return( Register_Reaper(rid, reap_descrip, handler, > (ReaperHandlercpp)__null, handler_descrip, > s, 0) ); >} > >int DaemonCore::Reset_Reaper(int rid, char* reap_descrip, > ReaperHandlercpp handlercpp, char* handler_descrip, Service* s) >{ > return( Register_Reaper(rid, reap_descrip, __null, handlercpp, > handler_descrip, s, 1) ); >} > >int DaemonCore::Register_Timer(unsigned deltawhen, Event event, > char *event_descrip, Service* s) >{ > return( t.NewTimer(s, deltawhen, event, event_descrip, 0, -1) ); >} > >int DaemonCore::Register_Timer(unsigned deltawhen, unsigned period, > Event event, char *event_descrip, Service* s) >{ > return( t.NewTimer(s, deltawhen, event, event_descrip, period, -1) ); >} > >int DaemonCore::Register_Timer(unsigned deltawhen, Eventcpp eventcpp, > char *event_descrip, Service* s) >{ > return( t.NewTimer(s, deltawhen, eventcpp, event_descrip, 0, -1) ); >} > >int DaemonCore::Register_Timer(unsigned deltawhen, unsigned period, > Eventcpp event, char *event_descrip, Service* s ) >{ > return( t.NewTimer(s, deltawhen, event, event_descrip, period, -1) ); >} > >int DaemonCore::Cancel_Timer( int id ) >{ > return( t.CancelTimer(id) ); >} > >int DaemonCore::Reset_Timer( int id, unsigned when, unsigned period ) >{ > return( t.ResetTimer(id,when,period) ); >} > > > > >int DaemonCore::Register_Command(int command, char* command_descrip, > CommandHandler handler, CommandHandlercpp handlercpp, > char *handler_descrip, Service* s, DCpermission perm, > int dprintf_flag, int is_cpp) >{ > int i; > int j; > > if( handler == 0 && handlercpp == 0 ) { > dprintf((1<<18), "Can't register NULL command handler\n"); > return -1; > } > > if(nCommand >= maxCommand) { > _EXCEPT_Line = 805; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("# of command handlers exceeded specified maximum"); > } > > > > if(command < 0) { > i = -command % maxCommand; > } else { > i = command % maxCommand; > } > > > if ( (comTable[i].handler) || (comTable[i].handlercpp) ) { > > if(comTable[i].num == command) { > > _EXCEPT_Line = 821; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("DaemonCore: Same command registered twice"); > } > > > for(j = (i + 1) % maxCommand; j != i; j = (j + 1) % maxCommand) { > if( (comTable[j].handler == 0) && (comTable[j].handlercpp == 0) ) > { > i = j; > break; > } > } > } > > > comTable[i].num = command; > comTable[i].handler = handler; > comTable[i].handlercpp = handlercpp; > comTable[i].is_cpp = is_cpp; > comTable[i].perm = perm; > comTable[i].service = s; > comTable[i].data_ptr = __null; > comTable[i].dprintf_flag = dprintf_flag; > free_descrip(comTable[i].command_descrip); > if ( command_descrip ) > comTable[i].command_descrip = strdup(command_descrip); > else > comTable[i].command_descrip = EMPTY_DESCRIP; > free_descrip(comTable[i].handler_descrip); > if ( handler_descrip ) > comTable[i].handler_descrip = strdup(handler_descrip); > else > comTable[i].handler_descrip = EMPTY_DESCRIP; > > > nCommand++; > > > curr_regdataptr = &(comTable[i].data_ptr); > > > DumpCommandTable((1<<10) | (1<<18)); > > return(command); >} > >int DaemonCore::Cancel_Command( int ) >{ > > > return 1; >} > >int DaemonCore::InfoCommandPort() >{ > if ( initial_command_sock == -1 ) { > > return -1; > } > > > return( ((Sock*)((*sockTable)[initial_command_sock].iosock))->get_port() ); >} > > > > >char * DaemonCore::InfoCommandSinfulString(int pid) >{ > static char somepid_sinful_string[28]; > > > > if ( pid == -1 ) { > return InfoCommandSinfulStringMyself(false); > } else { > PidEntry *pidinfo = __null; > if ((pidTable->lookup(pid, pidinfo) < 0)) { > > return __null; > } > if ( pidinfo->sinful_string[0] == '\0' ) { > > return __null; > } > strncpy(somepid_sinful_string,pidinfo->sinful_string, > sizeof(somepid_sinful_string) ); > somepid_sinful_string[sizeof(somepid_sinful_string)-1] = 0; > return somepid_sinful_string; > } >} > > > > > >char * >DaemonCore::InfoCommandSinfulStringMyself(bool usePrivateAddress) >{ > static char * sinful_public = __null; > static char * sinful_private = __null; > static bool initialized_sinful_private = false; > > if ( initial_command_sock == -1 ) { > > return __null; > } > > > if (sinful_public == __null) { > char* tmp = param("TCP_FORWARDING_HOST"); > > > > > if (tmp != __null) { > MyString tcp_forwarding_host = tmp; > free(tmp); > struct sockaddr_in sin; > if (!is_ipaddr(tcp_forwarding_host.Value(), &sin.sin_addr)) { > struct hostent *he = condor_gethostbyname(tcp_forwarding_host.Value()); > if (he == __null) { > _EXCEPT_Line = 942; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("failed to resolve address of SSH_BROKER"); > } > sin.sin_addr = *(in_addr*)(he->h_addr_list[0]);; > } > sin.sin_port = (__extension__ ({ register unsigned short int __v, __x = (((Sock*)(*sockTable)[initial_command_sock].iosock)->get_port()); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); > sinful_public = strdup(sin_to_string(&sin)); > } > else { > sinful_public = strdup( > sock_to_string( (*sockTable)[initial_command_sock].iosock->get_file_desc() ) ); > } > } > > if (!initialized_sinful_private) { > MyString private_sinful_string; > char* tmp; > if ((tmp = param("PRIVATE_NETWORK_INTERFACE"))) { > int port = ((Sock*)(*sockTable)[initial_command_sock].iosock)->get_port(); > private_sinful_string.sprintf("<%s:%d>", tmp, port); > free(tmp); > sinful_private = strdup(private_sinful_string.Value()); > } ># 976 "daemon_core.C" > initialized_sinful_private = true; > } > > if (usePrivateAddress && sinful_private) { > return sinful_private; > } > return sinful_public; >} > >const char* >DaemonCore::publicNetworkIpAddr(void) { > return (const char*) InfoCommandSinfulStringMyself(false); >} > > >const char* >DaemonCore::privateNetworkIpAddr(void) { > return (const char*) InfoCommandSinfulStringMyself(true); >} > > >const char* >DaemonCore::privateNetworkName(void) { > return (const char*)m_private_network_name; >} > > > >PidEnvID* DaemonCore::InfoEnvironmentID(PidEnvID *penvid, int pid) >{ > extern char **environ; > > if (penvid == __null) { > return __null; > } > > > pidenvid_init(penvid); > > > if ( pid == -1 ) { > > if (pidenvid_filter_and_insert(penvid, environ) == > PIDENVID_OVERSIZED) > { > _EXCEPT_Line = 1021; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_( "DaemonCore::InfoEnvironmentID: Programmer error. " > "Tried to overstuff a PidEntryID array." ); > } > > } else { > > > PidEntry *pidinfo = __null; > if ((pidTable->lookup(pid, pidinfo) < 0)) { > > return __null; > } > > > pidenvid_copy(penvid, &pidinfo->penvid); > } > > return penvid; >} > >int DaemonCore::Register_Signal(int sig, char* sig_descrip, > SignalHandler handler, SignalHandlercpp handlercpp, > char* handler_descrip, Service* s, DCpermission perm, > int is_cpp) >{ > int i; > int j; > > > if( handler == 0 && handlercpp == 0 ) { > dprintf((1<<18), "Can't register NULL signal handler\n"); > return -1; > } > > > > > switch (sig) { > case 9: > case 19: > case 18: > _EXCEPT_Line = 1062; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Trying to Register_Signal for sig %d which cannot be caught!",sig); > break; > case 17: > Cancel_Signal(17); > break; > default: > break; > } > > if(nSig >= maxSig) { > _EXCEPT_Line = 1072; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("# of signal handlers exceeded specified maximum"); > } > > > > if(sig < 0) { > i = -sig % maxSig; > } else { > i = sig % maxSig; > } > > > > > if( sigTable[i].handler || sigTable[i].handlercpp ) { > > if(sigTable[i].num == sig) { > > _EXCEPT_Line = 1090; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("DaemonCore: Same signal registered twice"); > } > > > for(j = (i + 1) % maxSig; j != i; j = (j + 1) % maxSig) { > if( (sigTable[j].handler == 0) && (sigTable[j].handlercpp == 0) ) > { > i = j; > break; > } > } > } > > > sigTable[i].num = sig; > sigTable[i].handler = handler; > sigTable[i].handlercpp = handlercpp; > sigTable[i].is_cpp = is_cpp; > sigTable[i].perm = perm; > sigTable[i].service = s; > sigTable[i].is_blocked = 0; > sigTable[i].is_pending = 0; > free_descrip(sigTable[i].sig_descrip); > if ( sig_descrip ) > sigTable[i].sig_descrip = strdup(sig_descrip); > else > sigTable[i].sig_descrip = EMPTY_DESCRIP; > free_descrip(sigTable[i].handler_descrip); > if ( handler_descrip ) > sigTable[i].handler_descrip = strdup(handler_descrip); > else > sigTable[i].handler_descrip = EMPTY_DESCRIP; > > > nSig++; > > > curr_regdataptr = &(sigTable[i].data_ptr); > > > DumpSigTable((1<<10) | (1<<18)); > > return sig; >} > >int DaemonCore::Cancel_Signal( int sig ) >{ > int i,j; > int found = -1; > > > > if(sig < 0) { > i = -sig % maxSig; > } else { > i = sig % maxSig; > } > > > j = i; > do { > if ( (sigTable[j].num == sig) && > ( sigTable[j].handler || sigTable[j].handlercpp ) ) { > found = j; > } else { > j = (j + 1) % maxSig; > } > } while ( j != i && found == -1 ); > > > if ( found == -1 ) { > dprintf((1<<18),"Cancel_Signal: signal %d not found\n",sig); > return 0; > } > > > sigTable[found].num = 0; > sigTable[found].handler = __null; > sigTable[found].handlercpp = (SignalHandlercpp)__null; > free_descrip( sigTable[found].handler_descrip ); > sigTable[found].handler_descrip = __null; > > > nSig--; > > > if ( curr_regdataptr == &(sigTable[found].data_ptr) ) > curr_regdataptr = __null; > if ( curr_dataptr == &(sigTable[found].data_ptr) ) > curr_dataptr = __null; > > > dprintf((1<<18), > "Cancel_Signal: cancelled signal %d <%s>\n", > sig,sigTable[found].sig_descrip); > free_descrip( sigTable[found].sig_descrip ); > sigTable[found].sig_descrip = __null; > > DumpSigTable((1<<10) | (1<<18)); > > return 1; >} > >int DaemonCore::Register_Socket(Stream *iosock, const char* iosock_descrip, > SocketHandler handler, SocketHandlercpp handlercpp, > const char *handler_descrip, Service* s, DCpermission perm, > int is_cpp) >{ > int i; > int j; ># 1209 "daemon_core.C" > if ( !iosock ) { > dprintf((1<<18), "Can't register NULL socket \n"); > return -1; > } > > i = nSock; > > > if ( (*sockTable)[i].iosock ) { > dprintf ( (1<<0), "Socket table fubar. nSock = %d\n", nSock ); > DumpSocketTable( (1<<0) ); > _EXCEPT_Line = 1220; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("DaemonCore: Socket table messed up"); > } > > > int fd_to_register = ((Sock *)iosock)->get_file_desc(); > for ( j=0; j < nSock; j++ ) > { > bool duplicate_found = false; > > if ( (*sockTable)[j].iosock == iosock ) { > duplicate_found = true; > } > > if ( (*sockTable)[j].iosock ) { > if ( ((Sock *)(*sockTable)[j].iosock)->get_file_desc() == > fd_to_register ) { > duplicate_found = true; > } > } > > if (duplicate_found) { > dprintf((1<<0), "DaemonCore: Attempt to register socket twice\n"); > > return -2; > } > } ># 1254 "daemon_core.C" > if( iosock->type() == Stream::reli_sock && > ((ReliSock *)iosock)->is_connect_pending() ) > { > MyString overload_msg; > bool overload_danger = > TooManyRegisteredSockets( ((Sock *)iosock)->get_file_desc(), > &overload_msg); > > if( overload_danger ) > { > dprintf((1<<0), > "Aborting registration of socket %s %s: %s\n", > iosock_descrip ? iosock_descrip : "", > handler_descrip ? handler_descrip : ((Sock *)iosock)->get_sinful_peer(), > overload_msg.Value() ); > return -3; > } > } > > > (*sockTable)[i].call_handler = false; > (*sockTable)[i].iosock = (Sock *)iosock; > switch ( iosock->type() ) { > case Stream::reli_sock : > (*sockTable)[i].is_connect_pending = > ((ReliSock *)iosock)->is_connect_pending(); > break; > case Stream::safe_sock : > > (*sockTable)[i].is_connect_pending = false; > break; > default: > _EXCEPT_Line = 1286; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Adding CEDAR socket of unknown type"); > break; > } > (*sockTable)[i].handler = handler; > (*sockTable)[i].handlercpp = handlercpp; > (*sockTable)[i].is_cpp = is_cpp; > (*sockTable)[i].perm = perm; > (*sockTable)[i].service = s; > (*sockTable)[i].data_ptr = __null; > free_descrip((*sockTable)[i].iosock_descrip); > if ( iosock_descrip ) > (*sockTable)[i].iosock_descrip = strdup(iosock_descrip); > else > (*sockTable)[i].iosock_descrip = EMPTY_DESCRIP; > free_descrip((*sockTable)[i].handler_descrip); > if ( handler_descrip ) > (*sockTable)[i].handler_descrip = strdup(handler_descrip); > else > (*sockTable)[i].handler_descrip = EMPTY_DESCRIP; > > > nSock++; > > > > if ( initial_command_sock == -1 && handler == 0 && handlercpp == 0 ) > initial_command_sock = i; > > > curr_regdataptr = &((*sockTable)[i].data_ptr); > > > DumpSocketTable((1<<10) | (1<<18)); > > return i; >} > > >int >DaemonCore::Cancel_And_Close_All_Sockets(void) >{ > > > int i = 0; > > while ( nSock > 0 ) { > if ( (*sockTable)[0].iosock ) { > Stream* insock = (*sockTable)[0].iosock; > > > > Cancel_Socket( insock ); > delete insock; > if( insock == (Stream*)dc_rsock ) { > dc_rsock = __null; > } > if( insock == (Stream*)dc_ssock ) { > dc_ssock = __null; > } > i++; > } > } > > return i; >} > > >int DaemonCore::Cancel_Socket( Stream* insock) >{ > int i,j; > > i = -1; > for (j=0;j<nSock;j++) { > if ( (*sockTable)[j].iosock == insock ) { > i = j; > break; > } > } > > if ( i == -1 ) { > dprintf( (1<<0),"Cancel_Socket: called on non-registered socket!\n"); > dprintf( (1<<0),"Offending socket number %d\n", i ); > DumpSocketTable( (1<<18) ); > return 0; > } > > > > > if ( curr_regdataptr == &( (*sockTable)[i].data_ptr) ) > curr_regdataptr = __null; > if ( curr_dataptr == &( (*sockTable)[i].data_ptr) ) > curr_dataptr = __null; > > > dprintf((1<<18),"Cancel_Socket: cancelled socket %d <%s> %p\n", > i,(*sockTable)[i].iosock_descrip, (*sockTable)[i].iosock ); > > > (*sockTable)[i].iosock = __null; > free_descrip( (*sockTable)[i].iosock_descrip ); > (*sockTable)[i].iosock_descrip = __null; > free_descrip( (*sockTable)[i].handler_descrip ); > (*sockTable)[i].handler_descrip = __null; > if ( i < nSock - 1 ) { > > (*sockTable)[i] = (*sockTable)[nSock - 1]; > (*sockTable)[nSock - 1].iosock = __null; > (*sockTable)[nSock - 1].iosock_descrip = __null; > (*sockTable)[nSock - 1].handler_descrip = __null; > } > nSock--; > > DumpSocketTable((1<<10) | (1<<18)); > > return 1; >} ># 1413 "daemon_core.C" >static const int PIPE_INDEX_OFFSET = 0x10000; > >int DaemonCore::pipeHandleTableInsert(PipeHandle entry) >{ > > for (int i = 0; i <= maxPipeHandleIndex; i++) { > if ((*pipeHandleTable)[i] == (PipeHandle)-1) { > (*pipeHandleTable)[i] = entry; > return i; > } > } > > > (*pipeHandleTable)[++maxPipeHandleIndex] = entry; > return maxPipeHandleIndex; >} > >void DaemonCore::pipeHandleTableRemove(int index) >{ > > (*pipeHandleTable)[index] = (PipeHandle)-1; > > > if (index == maxPipeHandleIndex) { > maxPipeHandleIndex--; > } >} > >int DaemonCore::Create_Pipe( int *pipe_ends, > bool can_register_read, > bool can_register_write, > bool nonblocking_read, > bool nonblocking_write, > unsigned int psize) >{ > dprintf((1<<18),"Entering Create_Pipe()\n"); > > PipeHandle read_handle, write_handle; ># 1498 "daemon_core.C" > can_register_read = can_register_read; > can_register_write = can_register_write; > psize = psize; > > bool failed = false; > int filedes[2]; > if ( pipe(filedes) == -1 ) { > dprintf((1<<0),"Create_Pipe(): call to pipe() failed\n"); > return 0; > } > > if ( nonblocking_read ) { > int fcntl_flags; > if ( (fcntl_flags=fcntl(filedes[0], 3)) < 0 ) { > failed = true; > } else { > fcntl_flags |= 04000; > if ( fcntl(filedes[0],4,fcntl_flags) == -1 ) { > failed = true; > } > } > } > if ( nonblocking_write ) { > int fcntl_flags; > if ( (fcntl_flags=fcntl(filedes[1], 3)) < 0 ) { > failed = true; > } else { > fcntl_flags |= 04000; > if ( fcntl(filedes[1],4,fcntl_flags) == -1 ) { > failed = true; > } > } > } > if ( failed == true ) { > close(filedes[0]); > filedes[0] = -1; > close(filedes[1]); > filedes[1] = -1; > dprintf((1<<0),"Create_Pipe() failed to set non-blocking mode\n"); > return 0; > } > > read_handle = filedes[0]; > write_handle = filedes[1]; > > > > pipe_ends[0] = pipeHandleTableInsert(read_handle) + PIPE_INDEX_OFFSET; > pipe_ends[1] = pipeHandleTableInsert(write_handle) + PIPE_INDEX_OFFSET; > > dprintf((1<<18),"Create_Pipe() success read_handle=%d write_handle=%d\n", > pipe_ends[0],pipe_ends[1]); > return 1; >} > >int DaemonCore::Inherit_Pipe(int fd, bool is_write, bool can_register, bool nonblocking, int psize) >{ > PipeHandle pipe_handle; ># 1568 "daemon_core.C" > is_write = is_write; > can_register = can_register; > nonblocking = nonblocking; > psize = psize; > > pipe_handle = fd; > > > return pipeHandleTableInsert(pipe_handle) + PIPE_INDEX_OFFSET; >} > >int DaemonCore::Register_Pipe(int pipe_end, char* pipe_descrip, > PipeHandler handler, PipeHandlercpp handlercpp, > char *handler_descrip, Service* s, > HandlerType handler_type, DCpermission perm, > int is_cpp) >{ > int i; > int j; > > int index = pipe_end - PIPE_INDEX_OFFSET; > > if ( index < 0 ) { > dprintf((1<<18), "Register_Pipe: invalid index\n"); > return -1; > } > > i = nPipe; > > > if ( (*pipeTable)[i].index != -1 ) { > _EXCEPT_Line = 1599; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Pipe table fubar! nPipe = %d", nPipe ); > } > > > for ( j=0; j < nPipe; j++ ) > { > if ( (*pipeTable)[j].index == index ) { > _EXCEPT_Line = 1606; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("DaemonCore: Same pipe registered twice"); > } > } > > > (*pipeTable)[i].pentry = __null; > (*pipeTable)[i].call_handler = false; > (*pipeTable)[i].in_handler = false; > (*pipeTable)[i].index = index; > (*pipeTable)[i].handler = handler; > (*pipeTable)[i].handler_type = handler_type; > (*pipeTable)[i].handlercpp = handlercpp; > (*pipeTable)[i].is_cpp = is_cpp; > (*pipeTable)[i].perm = perm; > (*pipeTable)[i].service = s; > (*pipeTable)[i].data_ptr = __null; > free_descrip((*pipeTable)[i].pipe_descrip); > if ( pipe_descrip ) > (*pipeTable)[i].pipe_descrip = strdup(pipe_descrip); > else > (*pipeTable)[i].pipe_descrip = EMPTY_DESCRIP; > free_descrip((*pipeTable)[i].handler_descrip); > if ( handler_descrip ) > (*pipeTable)[i].handler_descrip = strdup(handler_descrip); > else > (*pipeTable)[i].handler_descrip = EMPTY_DESCRIP; > > > nPipe++; > > > curr_regdataptr = &((*pipeTable)[i].data_ptr); ># 1658 "daemon_core.C" > return pipe_end; >} > > >int DaemonCore::Cancel_Pipe( int pipe_end ) >{ > int index = pipe_end - PIPE_INDEX_OFFSET; > if (index < 0) { > dprintf((1<<0), "Cancel_Pipe on invalid pipe end: %d\n", pipe_end); > _EXCEPT_Line = 1667; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Cancel_Pipe error"); > } > > int i,j; > > i = -1; > for (j=0;j<nPipe;j++) { > if ( (*pipeTable)[j].index == index ) { > i = j; > break; > } > } > > if ( i == -1 ) { > dprintf( (1<<0),"Cancel_Pipe: called on non-registered pipe!\n"); > dprintf( (1<<0),"Offending pipe end number %d\n", pipe_end ); > return 0; > } > > > > > if ( curr_regdataptr == &( (*pipeTable)[i].data_ptr) ) > curr_regdataptr = __null; > if ( curr_dataptr == &( (*pipeTable)[i].data_ptr) ) > curr_dataptr = __null; > > > dprintf((1<<18), > "Cancel_Pipe: cancelled pipe end %d <%s> (entry=%d)\n", > pipe_end,(*pipeTable)[i].pipe_descrip, i ); > > > (*pipeTable)[i].index = -1; > free_descrip( (*pipeTable)[i].pipe_descrip ); > (*pipeTable)[i].pipe_descrip = __null; > free_descrip( (*pipeTable)[i].handler_descrip ); > (*pipeTable)[i].handler_descrip = __null; ># 1735 "daemon_core.C" > (*pipeTable)[i].pentry = __null; > if ( i < nPipe - 1 ) { > > (*pipeTable)[i] = (*pipeTable)[nPipe - 1]; > (*pipeTable)[nPipe - 1].index = -1; > (*pipeTable)[nPipe - 1].pipe_descrip = __null; > (*pipeTable)[nPipe - 1].handler_descrip = __null; > (*pipeTable)[nPipe - 1].pentry = __null; > } > nPipe--; > > return 1; >} ># 1766 "daemon_core.C" >int DaemonCore::Close_Pipe( int pipe_end ) >{ > int index = pipe_end - PIPE_INDEX_OFFSET; > if (index < 0) { > dprintf((1<<0), "Close_Pipe on invalid pipe end: %d\n", pipe_end); > _EXCEPT_Line = 1771; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Close_Pipe error"); > } > > > int i,j; > i = -1; > for (j=0;j<nPipe;j++) { > if ( (*pipeTable)[j].index == index ) { > i = j; > break; > } > } > if ( i != -1 ) { > > int result = Cancel_Pipe(pipe_end); > > > if( !(result == 1) ) { _EXCEPT_Line = 1788; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","result == 1"); }; > } > > > int retval = 1; ># 1809 "daemon_core.C" > int pipefd = (*pipeHandleTable)[index]; > if ( close(pipefd) < 0 ) { > dprintf((1<<0), > "Close_Pipe(pipefd=%d) failed, errno=%d\n",pipefd,(*__errno_location ())); > retval = 0; > } > > > > pipeHandleTableRemove(index); > > if (retval == 1) { > dprintf((1<<18), > "Close_Pipe(pipe_end=%d) succeeded\n",pipe_end); > } > > return retval; >} > > >int >DaemonCore::Cancel_And_Close_All_Pipes(void) >{ > > > int i = 0; > > while ( nPipe > 0 ) { > if ( (*pipeTable)[0].index != -1 ) { > > > > Close_Pipe( (*pipeTable)[0].index + PIPE_INDEX_OFFSET ); > i++; > } > } > > return i; >} > >int >DaemonCore::Read_Pipe(int pipe_end, void* buffer, int len) >{ > if (len < 0) { > dprintf((1<<0), "Read_Pipe: invalid len: %d\n", len); > _EXCEPT_Line = 1854; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Read_Pipe"); > } > > int index = pipe_end - PIPE_INDEX_OFFSET; > if (index < 0) { > dprintf((1<<0), "Read_Pipe: invalid pipe_end: %d\n", pipe_end); > _EXCEPT_Line = 1860; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Read_Pipe"); > } > > > > > > > return read((*pipeHandleTable)[index], buffer, len); > >} > >int >DaemonCore::Write_Pipe(int pipe_end, const void* buffer, int len) >{ > if (len < 0) { > dprintf((1<<0), "Write_Pipe: invalid len: %d\n", len); > _EXCEPT_Line = 1877; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Write_Pipe"); > } > > int index = pipe_end - PIPE_INDEX_OFFSET; > if (index < 0) { > dprintf((1<<0), "Write_Pipe: invalid pipe_end: %d\n", pipe_end); > _EXCEPT_Line = 1883; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Write_Pipe: invalid pipe end"); > } > > > > > > > return write((*pipeHandleTable)[index], buffer, len); > >} > >int DaemonCore::Register_Reaper(int rid, char* reap_descrip, > ReaperHandler handler, ReaperHandlercpp handlercpp, > char *handler_descrip, Service* s, int is_cpp) >{ > int i; > int j; ># 1915 "daemon_core.C" > if ( rid == -1 ) { > > if(nReap >= maxReap) { > _EXCEPT_Line = 1918; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("# of reaper handlers exceeded specified maximum"); > } > > > for(i = nReap % maxReap, j=0; j < maxReap; j++, i = (i + 1) % maxReap) > { > if ( reapTable[i].num == 0 ) { > break; > } else { > if ( reapTable[i].num != i + 1 ) { > _EXCEPT_Line = 1928; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("reaper table messed up"); > } > } > } > nReap++; > rid = i + 1; > } else { > if ( (rid < 1) || (rid > maxReap) ) > return 0; > if ( (reapTable[rid - 1].num) != rid ) > return 0; > i = rid - 1; > } > > > reapTable[i].num = rid; > reapTable[i].handler = handler; > reapTable[i].handlercpp = handlercpp; > reapTable[i].is_cpp = is_cpp; > reapTable[i].service = s; > reapTable[i].data_ptr = __null; > free_descrip(reapTable[i].reap_descrip); > if ( reap_descrip ) > reapTable[i].reap_descrip = strdup(reap_descrip); > else > reapTable[i].reap_descrip = EMPTY_DESCRIP; > free_descrip(reapTable[i].handler_descrip); > if ( handler_descrip ) > reapTable[i].handler_descrip = strdup(handler_descrip); > else > reapTable[i].handler_descrip = EMPTY_DESCRIP; > > > curr_regdataptr = &(reapTable[i].data_ptr); > > > DumpReapTable((1<<10) | (1<<18)); > > return rid; >} > >int DaemonCore::Lookup_Socket( Stream *insock ) >{ > for (int i=0; i < nSock; i++) { > if ((*sockTable)[i].iosock == insock) { > return i; > } > } > return -1; >} > >int DaemonCore::Cancel_Reaper( int ) >{ > > > > > return 1; >} > > >void DaemonCore::Dump(int flag, char* indent) >{ > DumpCommandTable(flag, indent); > DumpSigTable(flag, indent); > DumpSocketTable(flag, indent); > t.DumpTimerList(flag, indent); >} > >void DaemonCore::DumpCommandTable(int flag, const char* indent) >{ > int i; > char *descrip1, *descrip2; > > > > > > > if ( (flag & DebugFlags) != flag ) > return; > > if ( indent == __null) > indent = DEFAULT_INDENT; > > dprintf(flag,"\n"); > dprintf(flag, "%sCommands Registered\n", indent); > dprintf(flag, "%s~~~~~~~~~~~~~~~~~~~\n", indent); > for (i = 0; i < maxCommand; i++) { > if( comTable[i].handler || comTable[i].handlercpp ) > { > descrip1 = "NULL"; > descrip2 = descrip1; > if ( comTable[i].command_descrip ) > descrip1 = comTable[i].command_descrip; > if ( comTable[i].handler_descrip ) > descrip2 = comTable[i].handler_descrip; > dprintf(flag, "%s%d: %s %s\n", indent, comTable[i].num, > descrip1, descrip2); > } > } > dprintf(flag, "\n"); >} > >MyString DaemonCore::GetCommandsInAuthLevel(DCpermission perm) { > MyString res; > int i; > DCpermissionHierarchy hierarchy( perm ); > DCpermission const *perms = hierarchy.getImpliedPerms(); > > > for (perm = *(perms++); perm != LAST_PERM; perm = *(perms++)) { > for (i = 0; i < maxCommand; i++) { > if( (comTable[i].handler || comTable[i].handlercpp) && > (comTable[i].perm == perm) ) > { > char const *comma = res.Length() ? "," : ""; > res.sprintf_cat( "%s%i", comma, comTable[i].num ); > } > } > } > > return res; >} > >void DaemonCore::DumpReapTable(int flag, const char* indent) >{ > int i; > char *descrip1, *descrip2; > > > > > > > if ( (flag & DebugFlags) != flag ) > return; > > if ( indent == __null) > indent = DEFAULT_INDENT; > > dprintf(flag,"\n"); > dprintf(flag, "%sReapers Registered\n", indent); > dprintf(flag, "%s~~~~~~~~~~~~~~~~~~~\n", indent); > for (i = 0; i < maxReap; i++) { > if( reapTable[i].handler || reapTable[i].handlercpp ) { > descrip1 = "NULL"; > descrip2 = descrip1; > if ( reapTable[i].reap_descrip ) > descrip1 = reapTable[i].reap_descrip; > if ( reapTable[i].handler_descrip ) > descrip2 = reapTable[i].handler_descrip; > dprintf(flag, "%s%d: %s %s\n", indent, reapTable[i].num, > descrip1, descrip2); > } > } > dprintf(flag, "\n"); >} > >void DaemonCore::DumpSigTable(int flag, const char* indent) >{ > int i; > char *descrip1, *descrip2; > > > > > > > if ( (flag & DebugFlags) != flag ) > return; > > if ( indent == __null) > indent = DEFAULT_INDENT; > > dprintf(flag, "\n"); > dprintf(flag, "%sSignals Registered\n", indent); > dprintf(flag, "%s~~~~~~~~~~~~~~~~~~\n", indent); > for (i = 0; i < maxSig; i++) { > if( sigTable[i].handler || sigTable[i].handlercpp ) { > descrip1 = "NULL"; > descrip2 = descrip1; > if ( sigTable[i].sig_descrip ) > descrip1 = sigTable[i].sig_descrip; > if ( sigTable[i].handler_descrip ) > descrip2 = sigTable[i].handler_descrip; > dprintf(flag, "%s%d: %s %s, Blocked:%d Pending:%d\n", indent, > sigTable[i].num, descrip1, descrip2, > sigTable[i].is_blocked, sigTable[i].is_pending); > } > } > dprintf(flag, "\n"); >} > >void DaemonCore::DumpSocketTable(int flag, const char* indent) >{ > int i; > char *descrip1, *descrip2; > > > > > > > if ( (flag & DebugFlags) != flag ) > return; > > if ( indent == __null) > indent = DEFAULT_INDENT; > > dprintf(flag,"\n"); > dprintf(flag, "%sSockets Registered\n", indent); > dprintf(flag, "%s~~~~~~~~~~~~~~~~~~~\n", indent); > for (i = 0; i < nSock; i++) { > if ( (*sockTable)[i].iosock ) { > descrip1 = "NULL"; > descrip2 = descrip1; > if ( (*sockTable)[i].iosock_descrip ) > descrip1 = (*sockTable)[i].iosock_descrip; > if ( (*sockTable)[i].handler_descrip ) > descrip2 = (*sockTable)[i].handler_descrip; > dprintf(flag, "%s%d: %d %s %s\n", > indent, i, ((Sock *) (*sockTable)[i].iosock)->get_file_desc(), descrip1, descrip2 ); > } > } > dprintf(flag, "\n"); >} > >int >DaemonCore::ReInit() >{ > static int tid = -1; > > > ipverify.Init(); > > > > > > > > if( tid < 0 ) { > tid = daemonCore-> > Register_Timer( 8*60*60, 0, (Eventcpp)&DaemonCore::ReInit, > "DaemonCore::ReInit()", daemonCore ); > } else { > daemonCore->Reset_Timer( tid, 8*60*60, 0 ); > } > > > > if ( ppid ) { > MyString buf; > buf.sprintf("%s_NOT_RESPONDING_TIMEOUT",mySubSystem); > max_hang_time = param_integer(buf.Value(),-1); > if( max_hang_time == -1 ) { > max_hang_time = param_integer("NOT_RESPONDING_TIMEOUT",0); > } > if ( !max_hang_time ) { > max_hang_time = 60 * 60; > } > int send_update = (max_hang_time / 3) - 30; > if ( send_update < 1 ) > send_update = 1; > if ( send_child_alive_timer == -1 ) { > send_child_alive_timer = Register_Timer(1, (unsigned)send_update, > (Eventcpp)&DaemonCore::SendAliveToParent, > "DaemonCore::SendAliveToParent", this ); > } else { > Reset_Timer(send_child_alive_timer, 1, send_update); > } > } > > > > MyString subsys = MyString(mySubSystem); > bool enable_soap_ssl = param_boolean("ENABLE_SOAP_SSL", false); > bool subsys_enable_soap_ssl = > param_boolean((subsys + "_ENABLE_SOAP_SSL").GetCStr(), false); > if (subsys_enable_soap_ssl || > (enable_soap_ssl && > (!(__null != param((subsys + "_ENABLE_SOAP_SSL").GetCStr())) || > subsys_enable_soap_ssl))) { > if (mapfile) { > delete mapfile; mapfile = __null; > } > mapfile = new MapFile; > char * credential_mapfile; > if (__null == (credential_mapfile = param("CERTIFICATE_MAPFILE"))) { > _EXCEPT_Line = 2218; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("DaemonCore: No CERTIFICATE_MAPFILE defined, " > "unable to identify users, required by ENABLE_SOAP_SSL"); > } > char * user_mapfile; > if (__null == (user_mapfile = param("USER_MAPFILE"))) { > _EXCEPT_Line = 2223; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("DaemonCore: No USER_MAPFILE defined, " > "unable to identify users, required by ENABLE_SOAP_SSL"); > } > int line; > if (0 != (line = mapfile->ParseCanonicalizationFile(credential_mapfile))) { > _EXCEPT_Line = 2228; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("DaemonCore: Error parsing CERTIFICATE_MAPFILE at line %d", > line); > } > if (0 != (line = mapfile->ParseUsermapFile(user_mapfile))) { > _EXCEPT_Line = 2232; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("DaemonCore: Error parsing USER_MAPFILE at line %d", line); > } > } > > > > file_descriptor_safety_limit = 0; > > return 1; >} > > >void >DaemonCore::reconfig(void) { > > > > > if (m_private_network_name) { > free(m_private_network_name); > } > m_private_network_name = param("PRIVATE_NETWORK_NAME"); > > > initCollectorList(); > > > > > InitSettableAttrsLists(); > > > if (param_boolean("NET_REMAP_ENABLE", false, false)) { > m_use_clone_to_create_processes = false; > dprintf((1<<12), "NET_REMAP_ENABLE is TRUE, forcing USE_CLONE_TO_CREATE_PROCESSES to FALSE.\n"); > } > else { > m_use_clone_to_create_processes = param_boolean("USE_CLONE_TO_CREATE_PROCESSES", true); > } > > > > if( param_boolean("ENABLE_SOAP",false) || > param_boolean("ENABLE_WEB_SERVER",false) ) > { > > > if( !soap ) { > soap = new struct soap; > > init_soap(soap); > } > } > else { > > > > } ># 2300 "daemon_core.C" > m_fake_create_thread = param_boolean("FAKE_CREATE_THREAD",false); > > >} > > >int >DaemonCore::Verify(DCpermission perm, const struct sockaddr_in *sin, const char * fqu ) >{ > > > > > > > switch (perm) { > case ALLOW: > return 1; > break; > > case IMMEDIATE_FAMILY: > > return 1; > break; > > default: > if ( sin ) { > return ipverify.Verify(perm, sin, fqu); > } else { > return 0; > } > break; > } > > > _EXCEPT_Line = 2335; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("bad DC Verify"); > return 0; >} > > >int >DaemonCore::AddAllowHost( const char* host, DCpermission perm ) >{ > return ipverify.AddAllowHost( host, perm ); >} > >void >DaemonCore::Only_Allow_Soap(int duration) >{ > if ( duration <= 0 ) { > only_allow_soap = 0; > } else { > time_t now = time(__null); > only_allow_soap = now + duration + 1; > } >} > > > >void DaemonCore::Driver() >{ > Selector selector; > int i; > int tmpErrno; > time_t timeout; > int result; > time_t connect_timeout, min_connect_timeout; > > > sigset_t fullset, emptyset; > sigfillset( &fullset ); > > sigdelset(&fullset, 11); > sigdelset(&fullset, 6); > sigdelset(&fullset, 4); > sigdelset(&fullset, 7); > sigdelset(&fullset, 8); > sigdelset(&fullset, 5); > sigdelset(&fullset, 27); > > sigemptyset( &emptyset ); > char asyncpipe_buf[10]; > > > if ( param_boolean( "ENABLE_STDOUT_TESTING", false ) ) > { > dprintf( (1<<0), "Testing stdout & stderr\n" ); > { > char buf[1024]; > memset(buf, 0, sizeof(buf) ); > bool do_out = true, do_err = true; > bool do_fd1 = true, do_fd2 = true; > for ( i=0; i<16*1024; i++ ) > { > if ( do_out && fwrite( buf, sizeof(buf), 1, stdout ) != 1 ) > { > dprintf( (1<<0), "Failed to write to stdout: %s\n", > strerror( (*__errno_location ()) ) ); > do_out = false; > } > if ( do_err && fwrite( buf, sizeof(buf), 1, stderr ) != 1 ) > { > dprintf( (1<<0), "Failed to write to stderr: %s\n", > strerror( (*__errno_location ()) ) ); > do_err = false; > } > if ( do_fd1 && write( 1, buf, sizeof(buf) ) != sizeof(buf) ) > { > dprintf( (1<<0), "Failed to write to fd 1: %s\n", > strerror( (*__errno_location ()) ) ); > do_fd1 = false; > } > if ( do_fd2 && write( 2, buf, sizeof(buf) ) != sizeof(buf) ) > { > dprintf( (1<<0), "Failed to write to fd 2: %s\n", > strerror( (*__errno_location ()) ) ); > do_fd2 = false; > } > } > } > dprintf( (1<<0), "Done with stdout & stderr tests\n" ); > } > > for(;;) > { > > sent_signal = 0; > if ( !only_allow_soap ) { > for (i=0;i<maxSig;i++) { > if ( sigTable[i].handler || sigTable[i].handlercpp ) { > > if ( sigTable[i].is_pending && !sigTable[i].is_blocked ) { > > sigTable[i].is_pending = 0; > > curr_dataptr = &(sigTable[i].data_ptr); > > dprintf((1<<18), > "Calling Handler <%s> for Signal %d <%s>\n", > sigTable[i].handler_descrip,sigTable[i].num, > sigTable[i].sig_descrip); > > if ( sigTable[i].is_cpp ) > (sigTable[i].service->*(sigTable[i].handlercpp))(sigTable[i].num); > else > (*sigTable[i].handler)(sigTable[i].service,sigTable[i].num); > > curr_dataptr = __null; > > CheckPrivState(); > } > } > } > } > > > > > while( read(async_pipe[0],asyncpipe_buf,8) > 0 ); > > async_pipe_empty = 1; ># 2475 "daemon_core.C" > timeout = 0; > if ( !only_allow_soap ) { > timeout = t.Timeout(); > } > > if ( sent_signal == 1 ) { > timeout = 0; > } > if ( timeout < 0 ) { > timeout = TIME_T_NEVER; > } > > > > > selector.reset(); > min_connect_timeout = 0; > for (i = 0; i < nSock; i++) { > if ( (*sockTable)[i].iosock ) { > > if ( (*sockTable)[i].is_connect_pending ) { > > > > > selector.add_fd( (*sockTable)[i].iosock->get_file_desc(), Selector::IO_WRITE ); > selector.add_fd( (*sockTable)[i].iosock->get_file_desc(), Selector::IO_EXCEPT ); > > > > connect_timeout = (*sockTable)[i].iosock->connect_timeout_time(); > if(connect_timeout) { > if(min_connect_timeout == 0 || min_connect_timeout > connect_timeout) { > > min_connect_timeout = connect_timeout; > } > connect_timeout -= time(__null); > if(connect_timeout < timeout) { > if(connect_timeout < 0) connect_timeout = 0; > timeout = connect_timeout; > } > } > } else { > > > selector.add_fd( (*sockTable)[i].iosock->get_file_desc(), Selector::IO_READ ); > } > } > } > > > > > > for (i = 0; i < nPipe; i++) { > if ( (*pipeTable)[i].index != -1 ) { > int pipefd = (*pipeHandleTable)[(*pipeTable)[i].index]; > switch( (*pipeTable)[i].handler_type ) { > case HANDLE_READ: > selector.add_fd( pipefd, Selector::IO_READ ); > break; > case HANDLE_WRITE: > selector.add_fd( pipefd, Selector::IO_WRITE ); > break; > case HANDLE_READ_WRITE: > selector.add_fd( pipefd, Selector::IO_READ ); > selector.add_fd( pipefd, Selector::IO_WRITE ); > break; > } > } > } > > > > > selector.add_fd( async_pipe[0], Selector::IO_READ ); > > > if ( only_allow_soap ) { > time_t now = time(__null); > if ( now >= only_allow_soap ) { > > only_allow_soap = 0; > > > continue; > } else { > > timeout = only_allow_soap - now; > selector.reset(); > selector.add_fd( (*sockTable)[initial_command_sock].iosock->get_file_desc(), > Selector::IO_READ ); > > > > if (-1 != soap_ssl_sock) { > selector.add_fd( (*sockTable)[soap_ssl_sock].iosock->get_file_desc(), > Selector::IO_READ ); > } > } > } > > > > > > > async_sigs_unblocked = 1; > > > > sigprocmask( 2, &emptyset, __null ); > > > > > > selector.set_timeout( timeout ); > > (*__errno_location ()) = 0; > time_t time_before = time(__null); > time_t okay_delta = timeout; > > selector.execute(); > > tmpErrno = (*__errno_location ()); > > CheckForTimeSkip(time_before, okay_delta); > > > > > > > sigprocmask( 2, &fullset, __null ); > > > > > async_sigs_unblocked = 0; > > if ( selector.failed() ) { > > _EXCEPT_Line = 2618; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("DaemonCore: select() returned an unexpected error: %d (%s)",tmpErrno,strerror(tmpErrno)); > } ># 2628 "daemon_core.C" > if ( selector.has_ready() || > ( selector.timed_out() && > min_connect_timeout && min_connect_timeout < time(__null) ) ) { > > > > bool recheck_status = false; > > > > for(i = 0; i < nSock; i++) { > if ( (*sockTable)[i].iosock ) { > > > > (*sockTable)[i].call_handler = false; > if ( (*sockTable)[i].is_connect_pending ) { > > connect_timeout = > (*sockTable)[i].iosock->connect_timeout_time(); > bool connect_timed_out = > connect_timeout != 0 && connect_timeout < time(__null); > if ( selector.fd_ready( (*sockTable)[i].iosock->get_file_desc(), > Selector::IO_WRITE ) || > selector.fd_ready( (*sockTable)[i].iosock->get_file_desc(), > Selector::IO_EXCEPT ) || > connect_timed_out ) > { > > > > > > if ( ((Sock *)(*sockTable)[i].iosock)-> > do_connect_finish() != CEDAR_EWOULDBLOCK) > { > (*sockTable)[i].call_handler = true; > } > } > } else { > if ( selector.fd_ready( (*sockTable)[i].iosock->get_file_desc(), > Selector::IO_READ ) ) > { > (*sockTable)[i].call_handler = true; > } > } > } > } > > > for(i = 0; i < nPipe; i++) { > if ( (*pipeTable)[i].index != -1 ) { > > (*pipeTable)[i].call_handler = false; ># 2692 "daemon_core.C" > int pipefd = (*pipeHandleTable)[(*pipeTable)[i].index]; > if ( selector.fd_ready( pipefd, Selector::IO_READ ) ) > { > (*pipeTable)[i].call_handler = true; > } > if ( selector.fd_ready( pipefd, Selector::IO_WRITE ) ) > { > (*pipeTable)[i].call_handler = true; > } > > } > } > > > > for(i = 0; i < nPipe; i++) { > if ( (*pipeTable)[i].index != -1 ) { > > if ( (*pipeTable)[i].call_handler ) { > > (*pipeTable)[i].call_handler = false; > > > > PidEntry* saved_pentry = (*pipeTable)[i].pentry; > > if ( recheck_status || saved_pentry ) { ># 2740 "daemon_core.C" > int pipefd = (*pipeHandleTable)[(*pipeTable)[i].index]; > selector.reset(); > selector.set_timeout( 0 ); > selector.add_fd( pipefd, Selector::IO_READ ); > selector.execute(); > if ( selector.timed_out() ) { > > continue; > } > > } > > (*pipeTable)[i].in_handler = true; > > > int pipe_end = (*pipeTable)[i].index + PIPE_INDEX_OFFSET; > dprintf((1<<19),"Calling pipe Handler <%s> for Pipe end=%d <%s>\n", > (*pipeTable)[i].handler_descrip, > pipe_end, > (*pipeTable)[i].pipe_descrip); > > > curr_dataptr = &( (*pipeTable)[i].data_ptr); > recheck_status = true; > if ( (*pipeTable)[i].handler ) > > result = (*( (*pipeTable)[i].handler))( (*pipeTable)[i].service, pipe_end); > else > if ( (*pipeTable)[i].handlercpp ) > > result = ((*pipeTable)[i].service->*( (*pipeTable)[i].handlercpp))(pipe_end); > else > { > > _EXCEPT_Line = 2774; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("No pipe handler callback"); > } > > dprintf((1<<19),"Return from pipe Handler\n"); > > (*pipeTable)[i].in_handler = false; > > > CheckPrivState(); > > > curr_dataptr = __null; ># 2797 "daemon_core.C" > if ( (*pipeTable)[i].call_handler == true ) { > > > > > i--; > } > > } > } > } > > > > for(i = 0; i < nSock; i++) { > if ( (*sockTable)[i].iosock ) { > > if ( (*sockTable)[i].call_handler ) { > > (*sockTable)[i].call_handler = false; > > if ( recheck_status && > ((*sockTable)[i].is_connect_pending == false) ) > { > > > > > > selector.reset(); > selector.set_timeout( 0 ); > selector.add_fd( (*sockTable)[i].iosock->get_file_desc(), > Selector::IO_READ ); > > selector.execute(); > if ( selector.timed_out() ) { > > continue; > } > } > > > > > > > if ( (*sockTable)[i].iosock->type() == Stream::safe_sock ) > { > SafeSock* ss = (SafeSock *)(*sockTable)[i].iosock; > > > > if ( !(ss->handle_incoming_packet()) ) { > > > > continue; > } > } > > char *handlerName = __null; ># 2866 "daemon_core.C" > if ( (*sockTable)[i].handler || (*sockTable)[i].handlercpp ) > { > dprintf((1<<18), > "Calling Handler <%s> for Socket <%s>\n", > (*sockTable)[i].handler_descrip, > (*sockTable)[i].iosock_descrip); > handlerName = strdup((*sockTable)[i].handler_descrip); > dprintf((1<<19), "Calling Handler <%s>\n", handlerName); > } > > > curr_dataptr = &( (*sockTable)[i].data_ptr); > recheck_status = true; > if ( (*sockTable)[i].handler ) { > > result = (*( (*sockTable)[i].handler))( (*sockTable)[i].service, (*sockTable)[i].iosock); > dprintf((1<<19), "Return from Handler <%s>\n", handlerName); > free(handlerName); > } else > if ( (*sockTable)[i].handlercpp ) { > > result = ((*sockTable)[i].service->*( (*sockTable)[i].handlercpp))((*sockTable)[i].iosock); > dprintf((1<<19), "Return from Handler <%s>\n", handlerName); > free(handlerName); > } > else > > > > result = HandleReq(i); > > > CheckPrivState(); > > > curr_dataptr = __null; > > > > > if ( result != KEEP_STREAM ) { > > delete (*sockTable)[i].iosock; > > Cancel_Socket( (*sockTable)[i].iosock ); > > > i--; > } > > } > } > } > > } > > } >} > >void >DaemonCore::CheckPrivState( void ) >{ > > > priv_state old_priv = _set_priv(Default_Priv_State, "daemon_core.C", 2930, 1); ># 2940 "daemon_core.C" > if( old_priv != Default_Priv_State ) { > dprintf( (1<<0), > "DaemonCore ERROR: Handler returned with priv state %d\n", > old_priv ); > dprintf( (1<<0), "History of priv-state changes:\n" ); > display_priv_log(); > char* tmp = param( "EXCEPT_ON_ERROR" ); > if( tmp ) { > if( tmp[0] == 'T' || tmp[0] == 't' ) { > _EXCEPT_Line = 2949; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_( "Priv-state error found by DaemonCore" ); > } > free( tmp ); > } > } >} > >int DaemonCore::ServiceCommandSocket() >{ > Selector selector; > int commands_served = 0; > > > if ( initial_command_sock == -1 ) > return 0; > if ( !( (*sockTable)[initial_command_sock].iosock) ) > return 0; > > > selector.set_timeout( 0 ); > selector.add_fd( (*sockTable)[initial_command_sock].iosock->get_file_desc(), > Selector::IO_READ ); > > inServiceCommandSocket_flag = 1; > do { > > (*__errno_location ()) = 0; > selector.execute(); > > > if ( selector.failed() ) { > > _EXCEPT_Line = 2981; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("select, error # = %d", (*__errno_location ())); > } > > > > > > > > if ( selector.has_ready() ) { > HandleReq( initial_command_sock ); > commands_served++; > > CheckPrivState(); > } > > } while ( selector.has_ready() ); > > inServiceCommandSocket_flag = 0; > return commands_served; >} > > >int DaemonCore::HandleReqSocketTimerHandler() >{ > Stream *stream = __null; > > > > > > > > stream = (Stream*) GetDataPtr(); > if( !(stream) ) { _EXCEPT_Line = 3015; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","stream"); }; > if( !(stream->type() == Stream::reli_sock) ) { _EXCEPT_Line = 3016; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","stream->type() == Stream::reli_sock"); }; > > > Cancel_Socket(stream); > > > dprintf((1<<0),"Closing socket from %s - no data received\n", > sin_to_string(((Sock*)stream)->endpoint())); > delete stream; > > return 1; >} > > >int DaemonCore::HandleReqSocketHandler(Stream *stream) >{ > int* timeout_tid = __null; > > > > > > > > timeout_tid = (int *) GetDataPtr(); > if( !(timeout_tid) ) { _EXCEPT_Line = 3041; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","timeout_tid"); }; > > Cancel_Timer(*timeout_tid); > delete timeout_tid; > > > > > > Cancel_Socket(stream); > > > int ret_val = HandleReq(stream); > > > if ( ret_val != KEEP_STREAM ) { > delete stream; > } > > > > return KEEP_STREAM; >} > > >int DaemonCore::HandleReq(int socki) >{ > Stream *insock; > > insock = (*sockTable)[socki].iosock; > > return HandleReq(insock); >} > >int DaemonCore::HandleReq(Stream *insock) >{ > Stream *stream = __null; > > int is_tcp; > int req; > int index, j; > int reqFound = 0; > int result = 0; > int old_timeout; > int perm = USER_AUTH_FAILURE; > char user[256]; > user[0] = '\0'; > ClassAd *the_policy = __null; > KeyInfo *the_key = __null; > char *the_sid = __null; > char * who = __null; > > bool is_http_post = false; > bool is_http_get = false; > > > if( !(insock) ) { _EXCEPT_Line = 3097; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","insock"); }; > > switch ( insock->type() ) { > case Stream::reli_sock : > is_tcp = 1; > break; > case Stream::safe_sock : > is_tcp = 0; > break; > default: > > _EXCEPT_Line = 3108; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("DaemonCore: HandleReq(): unrecognized Stream sock"); > } > > CondorError errstack; > > > if ( is_tcp ) { > > > if ( ((ReliSock *)insock)->_state == Sock::sock_special && > ((ReliSock *)insock)->_special_state == ReliSock::relisock_listen ) > { > stream = (Stream *) ((ReliSock *)insock)->accept(); > if ( !stream ) { > dprintf((1<<0), "DaemonCore: accept() failed!"); > > return KEEP_STREAM; > } > > > > > > > if ( ((ReliSock *)stream)->bytes_available_to_read() < 4 && > inServiceCommandSocket_flag == 0 ) > { ># 3143 "daemon_core.C" > int tid = daemonCore->Register_Timer( > 200, > (Eventcpp) &DaemonCore::HandleReqSocketTimerHandler, > "DaemonCore::HandleReqSocketTimerHandler", > this); > > daemonCore->Register_DataPtr((void*)stream); > > > > > int tmp_result = daemonCore->Register_Socket(stream, > "Incoming command", > (SocketHandlercpp) &DaemonCore::HandleReqSocketHandler, > "DaemonCore::HandleReqSocketHandler", > this); > if ( tmp_result >= 0 ) { > > int* stashed_tid = new int; > *stashed_tid = tid; > > daemonCore->Register_DataPtr((void*)stashed_tid); > > > return KEEP_STREAM; > } else { > > > > > daemonCore->Cancel_Timer(tid); > } > } > } > > else { > stream = insock; > } > > } > > else { > > > > stream = insock; > > > > > dprintf ( (1<<17), "DC_AUTHENTICATE: received UDP packet from %s.\n", > sin_to_string(((Sock*)stream)->endpoint())); > > > > const char * cleartext_info = ((SafeSock*)stream)->isIncomingDataMD5ed(); > char * sess_id = __null; > char * return_address_ss = __null; > > if (cleartext_info) { > StringList info_list(cleartext_info); > char * tmp = __null; > > info_list.rewind(); > tmp = info_list.next(); > if (tmp) { > sess_id = strdup(tmp); > tmp = info_list.next(); > if (tmp) { > return_address_ss = strdup(tmp); > dprintf ( (1<<17), "DC_AUTHENTICATE: packet from %s uses MD5 session %s.\n", > return_address_ss, sess_id); > } else { > dprintf ( (1<<17), "DC_AUTHENTICATE: packet uses MD5 session %s.\n", sess_id); > } > > } else { > > > > } > } > > if (sess_id) { > KeyCacheEntry *session = __null; > bool found_sess = sec_man->session_cache->lookup(sess_id, session); > > if (!found_sess) { > dprintf ( (1<<0), "DC_AUTHENTICATE: session %s NOT FOUND...\n", sess_id); > > > > > sec_man->send_invalidate_packet ( return_address_ss, sess_id ); > > if( return_address_ss ) { > free( return_address_ss ); > return_address_ss = __null; > } > free( sess_id ); > sess_id = __null; > result = 0; > goto finalize; > } > > if (!session->key()) { > dprintf ( (1<<0), "DC_AUTHENTICATE: session %s is missing the key!\n", sess_id); > > if( return_address_ss ) { > free( return_address_ss ); > return_address_ss = __null; > } > free( sess_id ); > sess_id = __null; > result = 0; > goto finalize; > } > > if (!stream->set_MD_mode(MD_ALWAYS_ON, session->key())) { > dprintf ((1<<0), "DC_AUTHENTICATE: unable to turn on message authenticator, failing.\n"); > if( return_address_ss ) { > free( return_address_ss ); > return_address_ss = __null; > } > free( sess_id ); > sess_id = __null; > result = 0; > goto finalize; > } else { > dprintf ((1<<17), "DC_AUTHENTICATE: message authenticator enabled with key id %s.\n", sess_id); > sec_man->key_printf ((1<<17), session->key()); > } > > > session->policy()->LookupString(ATTR_SEC_USER, &who); > > free( sess_id ); > > if (return_address_ss) { > free( return_address_ss ); > } > } > > > > cleartext_info = ((SafeSock*)stream)->isIncomingDataEncrypted(); > sess_id = __null; > return_address_ss = __null; > > if (cleartext_info) { > StringList info_list(cleartext_info); > char * tmp = __null; > > info_list.rewind(); > tmp = info_list.next(); > if (tmp) { > sess_id = strdup(tmp); > > tmp = info_list.next(); > if (tmp) { > return_address_ss = strdup(tmp); > dprintf ( (1<<17), "DC_AUTHENTICATE: packet from %s uses crypto session %s.\n", > return_address_ss, sess_id); > } else { > dprintf ( (1<<17), "DC_AUTHENTICATE: packet uses crypto session %s.\n", sess_id); > } > > } else { > > > > } > } > > > if (sess_id) { > KeyCacheEntry *session = __null; > bool found_sess = sec_man->session_cache->lookup(sess_id, session); > > if (!found_sess) { > dprintf ( (1<<0), "DC_AUTHENTICATE: session %s NOT FOUND...\n", sess_id); > > > > sec_man->send_invalidate_packet( return_address_ss, sess_id ); > > if( return_address_ss ) { > free( return_address_ss ); > return_address_ss = __null; > } > free( sess_id ); > sess_id = __null; > result = 0; > goto finalize; > } > > if (!session->key()) { > dprintf ( (1<<0), "DC_AUTHENTICATE: session %s is missing the key!\n", sess_id); > > if( return_address_ss ) { > free( return_address_ss ); > return_address_ss = __null; > } > free( sess_id ); > sess_id = __null; > result = 0; > goto finalize; > } > > if (!stream->set_crypto_key(true, session->key())) { > dprintf ((1<<0), "DC_AUTHENTICATE: unable to turn on encryption, failing.\n"); > if( return_address_ss ) { > free( return_address_ss ); > return_address_ss = __null; > } > free( sess_id ); > sess_id = __null; > result = 0; > goto finalize; > } else { > dprintf ((1<<17), "DC_AUTHENTICATE: encryption enabled with key id %s.\n", sess_id); > sec_man->key_printf ((1<<17), session->key()); > } > > if (who == __null) { > session->policy()->LookupString(ATTR_SEC_USER, &who); > } > free( sess_id ); > if (return_address_ss) { > free( return_address_ss ); > } > } > > if (who != __null) { > ((SafeSock*)stream)->setFullyQualifiedUser(who); > ((SafeSock*)stream)->setAuthenticated(true); > dprintf ((1<<17), "DC_AUTHENTICATE: authenticated UDP message is from %s.\n", who); > } > } > > > stream->decode(); > > > > > > > > char tmpbuf[5]; > memset(tmpbuf,0,sizeof(tmpbuf)); > if ( is_tcp ) { > > condor_read(((Sock*)stream)->get_file_desc(), > tmpbuf, sizeof(tmpbuf) - 1, 1, MSG_PEEK); > } > > if ( strstr(tmpbuf,"GET") ) { > if ( param_boolean("ENABLE_WEB_SERVER",false) ) { > > if ( Verify(READ,((Sock*)stream)->endpoint(),__null) ) { > is_http_get = true; > } else { > dprintf((1<<0),"Received HTTP GET connection from %s -- " > "DENIED because host not authorized for READ\n", > sin_to_string(((Sock*)stream)->endpoint())); > } > } else { > dprintf((1<<0),"Received HTTP GET connection from %s -- " > "DENIED because ENABLE_WEB_SERVER=FALSE\n", > sin_to_string(((Sock*)stream)->endpoint())); > } > } else { > if ( strstr(tmpbuf,"POST") ) { > if ( param_boolean("ENABLE_SOAP",false) ) { > > if ( Verify(SOAP_PERM,((Sock*)stream)->endpoint(),__null) ) { > is_http_post = true; > } else { > dprintf((1<<0),"Received HTTP POST connection from %s -- " > "DENIED because host not authorized for SOAP\n", > sin_to_string(((Sock*)stream)->endpoint())); > } > } else { > dprintf((1<<0),"Received HTTP POST connection from %s -- " > "DENIED because ENABLE_SOAP=FALSE\n", > sin_to_string(((Sock*)stream)->endpoint())); > } > } > } > if ( is_http_post || is_http_get ) > { > struct soap *cursoap; > > > dprintf((1<<0), "Received HTTP %s connection from %s\n", > is_http_get ? "GET" : "POST", > sin_to_string(((Sock*)stream)->endpoint()) ); > > > if( !(soap) ) { _EXCEPT_Line = 3443; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","soap"); }; > cursoap = soap_copy(soap); > if( !(cursoap) ) { _EXCEPT_Line = 3445; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","cursoap"); }; > > > > > > > cursoap->socket = ((Sock*)stream)->get_file_desc(); > cursoap->recvfd = soap->socket; > cursoap->sendfd = soap->socket; > if ( cursoap->recv_timeout > 0 ) { > stream->timeout(soap->recv_timeout); > } else { > stream->timeout(20); > } > ((Sock*)stream)->set_os_buffers((65536),false); > ((Sock*)stream)->set_os_buffers((65536),true); > > > dprintf((1<<0),"About to serve HTTP request...\n"); > soap_serve(cursoap); > soap_delete((cursoap), __null); > soap_end(cursoap); > free(cursoap); > dprintf((1<<0), "Completed servicing HTTP request\n"); > > > > > ((Sock*)stream)->_sock = -1; > > result = 1; > goto finalize; > } > > > if (only_allow_soap) { > dprintf((1<<0), > "Received CEDAR command during SOAP transaction... queueing\n"); > if ( is_tcp ) { > dprintf((1<<18), > "stream fd being queued: %d\n", > ((Sock *) stream)->get_file_desc()); > Register_Command_Socket(stream); > } > return KEEP_STREAM; > } > > > > old_timeout = stream->timeout(1); > result = stream->code(req); > > > stream->timeout(20); > if(!result) { > char const *ip = stream->endpoint_ip_str(); > if(!ip) { > ip = "unknown address"; > } > dprintf((1<<0), > "DaemonCore: Can't receive command request from %s (perhaps a timeout?)\n", ip); > result = 0; > goto finalize; > } > > if (req == (60000 +10)) { > > Sock* sock = (Sock*)stream; > sock->decode(); > > dprintf ((1<<17), "DC_AUTHENTICATE: received DC_AUTHENTICATE from %s\n", sin_to_string(sock->endpoint())); > > ClassAd auth_info; > if( !auth_info.initFromStream(*sock)) { > dprintf ((1<<0), "ERROR: DC_AUTHENTICATE unable to " > "receive auth_info!\n"); > result = 0; > goto finalize; > } > > if ( is_tcp && !sock->end_of_message()) { > dprintf ((1<<0), "ERROR: DC_AUTHENTICATE is TCP, unable to " > "receive eom!\n"); > result = 0; > goto finalize; > } > > if (DebugFlags & (1<<10)) { > dprintf ((1<<17), "DC_AUTHENTICATE: received following ClassAd:\n"); > auth_info.dPrint ((1<<17)); > } > > > int real_cmd = 0; > int tmp_cmd = 0; > auth_info.LookupInteger(ATTR_SEC_COMMAND, real_cmd); > > if (real_cmd == (60000 +10)) { > > auth_info.LookupInteger(ATTR_SEC_AUTH_COMMAND, tmp_cmd); > } else { > tmp_cmd = real_cmd; > } > > > > int cmd_index = 0; > > > if ( tmp_cmd < 0 ) > cmd_index = -tmp_cmd % maxCommand; > else > cmd_index = tmp_cmd % maxCommand; > > int cmdFound = 0; > if (comTable[cmd_index].num == tmp_cmd) { > > cmdFound = 1; > } else { > > for (j = (cmd_index + 1) % maxCommand; j != cmd_index; j = (j + 1) % maxCommand) { > if(comTable[j].num == tmp_cmd) { > cmdFound = 1; > cmd_index = j; > break; > } > } > } > > if (!cmdFound) { > > > result = 0; > goto finalize; > } > > bool new_session = false; > bool using_cookie = false; > bool valid_cookie = false; > > > char *incoming_cookie = __null; > if( auth_info.LookupString(ATTR_SEC_COOKIE, &incoming_cookie)) { > > > valid_cookie = cookie_is_valid((unsigned char*)incoming_cookie); > free (incoming_cookie); > > if ( valid_cookie ) { > > using_cookie = true; > } else { > > dprintf ( (1<<0), "DC_AUTHENTICATE: recieved invalid cookie!!!\n"); > result = 0; > goto finalize; > } > } > > > > if (!using_cookie) { > > if ( sec_man->sec_lookup_feat_act(auth_info, ATTR_SEC_USE_SESSION) == SecMan::SEC_FEAT_ACT_YES) { > > KeyCacheEntry *session = __null; > > if( ! auth_info.LookupString(ATTR_SEC_SID, &the_sid)) { > dprintf ((1<<0), "ERROR: DC_AUTHENTICATE unable to " > "extract auth_info.%s!\n", ATTR_SEC_SID); > result = 0; > goto finalize; > } > > > if (!sec_man->session_cache->lookup(the_sid, session)) { > > > > > dprintf ((1<<0), "DC_AUTHENTICATE: attempt to open " > "invalid session %s, failing.\n", the_sid); > > char * return_addr = __null; > if( auth_info.LookupString(ATTR_SEC_SERVER_COMMAND_SOCK, &return_addr)) { > sec_man->send_invalidate_packet( return_addr, the_sid ); > free (return_addr); > } > > > sock->decode(); > sock->end_of_message(); > > > result = 0; > goto finalize; > > } else { > > > if (DebugFlags & (1<<17)) { > char *return_addr = __null; > if(session->policy()) { > session->policy()->LookupString(ATTR_SEC_SERVER_COMMAND_SOCK,&return_addr); > } > dprintf ((1<<17), "DC_AUTHENTICATE: resuming session id %s%s%s:\n", > session->id(), > return_addr ? " with return address " : "", > return_addr ? return_addr : ""); > free(return_addr); > } > } > > if (session->key()) { > > the_key = new KeyInfo(*session->key()); > } > > if (session->policy()) { > > the_policy = new ClassAd(*session->policy()); > if (DebugFlags & (1<<10)) { > dprintf ((1<<17), "DC_AUTHENTICATE: Cached Session:\n"); > the_policy->dPrint ((1<<17)); > } > } > > > if (the_policy) { > char *the_user = __null; > the_policy->LookupString( ATTR_SEC_USER, &the_user); > > if (the_user) { > > strcpy (user, the_user); > free( the_user ); > the_user = __null; > } > } > new_session = false; > > } else { > > > ClassAd our_policy; > if( ! sec_man->FillInSecurityPolicyAd( > comTable[cmd_index].perm, &our_policy) ) { > > > dprintf( (1<<0), "DC_AUTHENTICATE: " > "Our security policy is invalid!\n" ); > result = 0; > goto finalize; > } > > if (DebugFlags & (1<<10)) { > dprintf ( (1<<17), "DC_AUTHENTICATE: our_policy:\n" ); > our_policy.dPrint((1<<17)); > } > > > the_policy = sec_man->ReconcileSecurityPolicyAds( auth_info, > our_policy ); > > if (!the_policy) { > dprintf((1<<0), "DC_AUTHENTICATE: Unable to reconcile!\n"); > result = 0; > goto finalize; > } else { > if (DebugFlags & (1<<10)) { > dprintf ( (1<<17), "DC_AUTHENTICATE: the_policy:\n" ); > the_policy->dPrint((1<<17)); > } > } > > > the_policy->Assign(ATTR_SEC_REMOTE_VERSION, CondorVersion()); > > > SecMan::sec_feat_act will_authenticate = sec_man->sec_lookup_feat_act(*the_policy, ATTR_SEC_AUTHENTICATION); > > if (sec_man->sec_lookup_feat_act(auth_info, ATTR_SEC_NEW_SESSION) == SecMan::SEC_FEAT_ACT_YES) { > > > > > MyString tmpStr; > tmpStr.sprintf( "%s:%i:%i:%i", my_hostname(), mypid, > (int)time(0), ZZZ_always_increase() ); > ((the_sid == __null) ? static_cast<void> (0) : __assert_fail ("the_sid == __null", "daemon_core.C", 3735, __PRETTY_FUNCTION__)); > the_sid = strdup(tmpStr.Value()); > > if (will_authenticate == SecMan::SEC_FEAT_ACT_YES) { > > char *crypto_method = __null; > if (!the_policy->LookupString(ATTR_SEC_CRYPTO_METHODS, &crypto_method)) { > dprintf ( (1<<0), "DC_AUTHENTICATE: tried to enable encryption but we have none!\n" ); > result = 0; > goto finalize; > } > > unsigned char* rkey = Condor_Crypt_Base::randomKey(24); > unsigned char rbuf[24]; > if (rkey) { > memcpy (rbuf, rkey, 24); > > free (rkey); > } else { > memset (rbuf, 0, 24); > dprintf ( (1<<17), "DC_AUTHENTICATE: unable to generate key - no crypto available!\n"); > free( crypto_method ); > crypto_method = __null; > result = 0; > goto finalize; > } > > switch (toupper(crypto_method[0])) { > case 'B': > dprintf ((1<<17), "DC_AUTHENTICATE: generating BLOWFISH key for session %s...\n", the_sid); > the_key = new KeyInfo(rbuf, 24, CONDOR_BLOWFISH); > break; > case '3': > case 'T': > dprintf ((1<<17), "DC_AUTHENTICATE: generating 3DES key for session %s...\n", the_sid); > the_key = new KeyInfo(rbuf, 24, CONDOR_3DES); > break; > default: > dprintf ((1<<17), "DC_AUTHENTICATE: generating RANDOM key for session %s...\n", the_sid); > the_key = new KeyInfo(rbuf, 24); > break; > } > > free( crypto_method ); > crypto_method = __null; > > if (!the_key) { > result = 0; > goto finalize; > } > > sec_man->key_printf ((1<<17), the_key); > } > > new_session = true; > } > > > if (is_tcp && (sec_man->sec_lookup_feat_act(auth_info, ATTR_SEC_ENACT) == SecMan::SEC_FEAT_ACT_NO)) { > if (DebugFlags & (1<<10)) { > dprintf ((1<<17), "SECMAN: Sending following response ClassAd:\n"); > the_policy->dPrint( (1<<17) ); > } > sock->encode(); > if (!the_policy->put(*sock) || > !sock->end_of_message()) { > dprintf ((1<<0), "SECMAN: Error sending response classad!\n"); > auth_info.dPrint ((1<<0)); > result = 0; > goto finalize; > } > sock->decode(); > } else { > dprintf( (1<<17), "SECMAN: Enact was '%s', not sending response.\n", > SecMan::sec_feat_act_rev[sec_man->sec_lookup_feat_act(auth_info, ATTR_SEC_ENACT)] ); > } > > } > > if (is_tcp) { > > > > > SecMan::sec_feat_act will_authenticate = sec_man->sec_lookup_feat_act(*the_policy, ATTR_SEC_AUTHENTICATION); > SecMan::sec_feat_act will_enable_encryption = sec_man->sec_lookup_feat_act(*the_policy, ATTR_SEC_ENCRYPTION); > SecMan::sec_feat_act will_enable_integrity = sec_man->sec_lookup_feat_act(*the_policy, ATTR_SEC_INTEGRITY); ># 3835 "daemon_core.C" > if ((will_authenticate == SecMan::SEC_FEAT_ACT_YES)) { > if ((!new_session)) { > char * remote_version = __null; > the_policy->LookupString(ATTR_SEC_REMOTE_VERSION, &remote_version); > if(remote_version) { > > > > dprintf( (1<<17), "SECMAN: other side is %s, NOT reauthenticating.\n", remote_version ); > will_authenticate = SecMan::SEC_FEAT_ACT_NO; > > free (remote_version); > } else { > dprintf( (1<<17), "SECMAN: other side is pre 6.6.1, reauthenticating.\n" ); > } > } else { > dprintf( (1<<17), "SECMAN: new session, doing initial authentication.\n" ); > } > } > > > > if (is_tcp && (will_authenticate == SecMan::SEC_FEAT_ACT_YES)) { ># 3868 "daemon_core.C" > char * auth_methods = __null; > the_policy->LookupString(ATTR_SEC_AUTHENTICATION_METHODS_LIST, &auth_methods); > > if (!auth_methods) { > dprintf ((1<<17), "DC_AUTHENTICATE: no auth methods in response ad, failing!\n"); > result = 0; > goto finalize; > } > > if (DebugFlags & (1<<10)) { > dprintf ((1<<17), "DC_AUTHENTICATE: authenticating RIGHT NOW.\n"); > } > > if (!sock->authenticate(the_key, auth_methods, &errstack)) { > free( auth_methods ); > dprintf( (1<<0), > "DC_AUTHENTICATE: authenticate failed: %s\n", > errstack.getFullText() ); > result = 0; > goto finalize; > } > free( auth_methods ); > > > > > if ( ((ReliSock*)sock)->authob ) { > > > > char* the_method = ((ReliSock*)sock)->authob->getMethodUsed(); > the_policy->Assign(ATTR_SEC_AUTHENTICATION_METHODS, the_method); > > const char* sockip = sin_to_string(sock->endpoint()); > const char* authip = ((ReliSock*)sock)->authob->getRemoteAddress() ; > > result = !strncmp (sockip + 1, authip, strlen(authip) ); > > if (!result && !param_boolean( "DISABLE_AUTHENTICATION_IP_CHECK", false)) { > dprintf ((1<<0), "DC_AUTHENTICATE: sock ip -> %s\n", sockip); > dprintf ((1<<0), "DC_AUTHENTICATE: auth ip -> %s\n", authip); > dprintf ((1<<0), "DC_AUTHENTICATE: ERROR: IP not in agreement!!! BAILING!\n"); > > result = 0; > goto finalize; > > } else { > dprintf ((1<<17), "DC_AUTHENTICATE: mutual authentication to %s complete.\n", authip); > } > } > > } else { > if (DebugFlags & (1<<10)) { > dprintf ((1<<17), "DC_AUTHENTICATE: not authenticating.\n"); > } > } > > > if (will_enable_integrity == SecMan::SEC_FEAT_ACT_YES) { > > if (!the_key) { > > result = 0; > goto finalize; > } > > sock->decode(); > if (!sock->set_MD_mode(MD_ALWAYS_ON, the_key)) { > dprintf ((1<<0), "DC_AUTHENTICATE: unable to turn on message authenticator, failing.\n"); > result = 0; > goto finalize; > } else { > dprintf ((1<<17), "DC_AUTHENTICATE: message authenticator enabled with key id %s.\n", the_sid); > sec_man->key_printf ((1<<17), the_key); > } > } else { > sock->set_MD_mode(MD_OFF, the_key); > } > > > if (will_enable_encryption == SecMan::SEC_FEAT_ACT_YES) { > > if (!the_key) { > > result = 0; > goto finalize; > } > > sock->decode(); > if (!sock->set_crypto_key(true, the_key) ) { > dprintf ((1<<0), "DC_AUTHENTICATE: unable to turn on encryption, failing.\n"); > result = 0; > goto finalize; > } else { > dprintf ((1<<17), "DC_AUTHENTICATE: encryption enabled for session %s\n", the_sid); > } > } else { > sock->set_crypto_key(false, the_key); > } > > > if (new_session) { > > sock->decode(); > sock->end_of_message(); > > > ClassAd pa_ad; > > > const char *fully_qualified_user = ((ReliSock*)sock)->getFullyQualifiedUser(); > if ( fully_qualified_user ) { > pa_ad.Assign(ATTR_SEC_USER,fully_qualified_user); > } > > > pa_ad.Assign(ATTR_SEC_SID, the_sid); > > > pa_ad.Assign(ATTR_SEC_VALID_COMMANDS, GetCommandsInAuthLevel(comTable[cmd_index].perm).Value()); > > > sec_man->sec_copy_attribute( *the_policy, auth_info, ATTR_SEC_SUBSYSTEM ); > sec_man->sec_copy_attribute( *the_policy, auth_info, ATTR_SEC_SERVER_COMMAND_SOCK ); > sec_man->sec_copy_attribute( *the_policy, auth_info, ATTR_SEC_PARENT_UNIQUE_ID ); > sec_man->sec_copy_attribute( *the_policy, auth_info, ATTR_SEC_SERVER_PID ); > > the_policy->Delete( ATTR_SEC_REMOTE_VERSION ); > sec_man->sec_copy_attribute( *the_policy, auth_info, ATTR_SEC_REMOTE_VERSION ); > sec_man->sec_copy_attribute( *the_policy, pa_ad, ATTR_SEC_USER ); > sec_man->sec_copy_attribute( *the_policy, pa_ad, ATTR_SEC_SID ); > sec_man->sec_copy_attribute( *the_policy, pa_ad, ATTR_SEC_VALID_COMMANDS ); > > if (DebugFlags & (1<<10)) { > dprintf ((1<<17), "DC_AUTHENTICATE: sending session ad:\n"); > pa_ad.dPrint( (1<<17) ); > } > > sock->encode(); > if (! pa_ad.put(*sock) || > ! sock->end_of_message() ) { > dprintf ((1<<17), "DC_AUTHENTICATE: unable to send session %s info!\n", the_sid); > } else { > if (DebugFlags & (1<<10)) { > dprintf ((1<<17), "DC_AUTHENTICATE: sent session %s info!\n", the_sid); > } > } > > > char *dur = __null; > the_policy->LookupString(ATTR_SEC_SESSION_DURATION, &dur); > > char *return_addr = __null; > the_policy->LookupString(ATTR_SEC_SERVER_COMMAND_SOCK, &return_addr); > > int expiration_time = time(0) + atoi(dur); ># 4032 "daemon_core.C" > KeyCacheEntry tmp_key(the_sid, __null, the_key, the_policy, expiration_time); > sec_man->session_cache->insert(tmp_key); > dprintf ((1<<17), "DC_AUTHENTICATE: added incoming session id %s to cache for %s seconds (return address is %s).\n", the_sid, dur, return_addr ? return_addr : "unknown"); > if (DebugFlags & (1<<10)) { > the_policy->dPrint((1<<17)); > } > > free( dur ); > dur = __null; > free( return_addr ); > return_addr = __null; > } > } > } > > if (real_cmd == (60000 +10)) { > result = 1; > goto finalize; > } > > req = real_cmd; > result = 1; > > sock->decode(); > sock->allow_one_empty_message(); > > if (DebugFlags & (1<<10)) { > dprintf ((1<<17), "DC_AUTHENTICATE: setting sock->decode()\n"); > dprintf ((1<<17), "DC_AUTHENTICATE: allowing an empty message for sock.\n"); > } > > > reqFound = 1; > index = cmd_index; > > dprintf ((1<<17), "DC_AUTHENTICATE: Success.\n"); > } else { > > > > > if ( req < 0 ) { > index = -req % maxCommand; > } else { > index = req % maxCommand; > } > > reqFound = 0; > if (comTable[index].num == req) { > > reqFound = 1; > } else { > > for (j = (index + 1) % maxCommand; j != index; j = (j + 1) % maxCommand) { > if(comTable[j].num == req) { > reqFound = 1; > index = j; > break; > } > } > } > > > if (reqFound) { > > > dprintf ((1<<17), "DaemonCore received UNAUTHENTICATED command %i.\n", req); > > > > if (comTable[index].perm != ALLOW) { > > ClassAd our_policy; > if( ! sec_man->FillInSecurityPolicyAd( > comTable[index].perm, &our_policy) ) > { > dprintf( (1<<0), "DC_AUTHENTICATE: " > "Our security policy is invalid!\n" ); > result = 0; > goto finalize; > } > > > > > > if ( (sec_man->sec_lookup_req(our_policy, ATTR_SEC_NEGOTIATION) > == SecMan::SEC_REQ_REQUIRED) > || (sec_man->sec_lookup_req(our_policy, ATTR_SEC_AUTHENTICATION) > == SecMan::SEC_REQ_REQUIRED) > || (sec_man->sec_lookup_req(our_policy, ATTR_SEC_ENCRYPTION) > == SecMan::SEC_REQ_REQUIRED) > || (sec_man->sec_lookup_req(our_policy, ATTR_SEC_INTEGRITY) > == SecMan::SEC_REQ_REQUIRED) ) { > > > > dprintf((1<<0), > "DaemonCore: PERMISSION DENIED for %d (%s) via %s%s%s from host %s (access level %s)\n", > req, > comTable[index].command_descrip, > (is_tcp) ? "TCP" : "UDP", > (user[0] != '\0') ? " from " : "", > (user[0] != '\0') ? user : "", > sin_to_string(((Sock*)stream)->endpoint()), > PermString(comTable[index].perm)); > > result = 0; > goto finalize; > } > } > } > } > > > if ( reqFound == 1 ) { > > > > > if (is_tcp) { > const char *u = ((ReliSock*)stream)->getFullyQualifiedUser(); > if (u) { > strcpy(user, u); > } > } else { > > > ((SafeSock*)stream)->setFullyQualifiedUser(user); > ((SafeSock*)stream)->setAuthenticated(true); > } > > if ( (perm = Verify(comTable[index].perm, ((Sock*)stream)->endpoint(), user)) != USER_AUTH_SUCCESS ) > { > > reqFound = 0; > > result = 0; > dprintf( (1<<0), > "DaemonCore: PERMISSION DENIED to %s from host %s for command %d (%s), access level %s\n", > (user[0] == '\0')? "unknown user" : user, sin_to_string(((Sock*)stream)->endpoint()), req, > comTable[index].command_descrip, > PermString(comTable[index].perm)); > > if ( !is_tcp) > stream->end_of_message(); > > } else { > dprintf(comTable[index].dprintf_flag, > "DaemonCore: Command received via %s%s%s from host %s, access level %s\n", > (is_tcp) ? "TCP" : "UDP", > (user[0] != '\0') ? " from " : "", > (user[0] != '\0') ? user : "", > sin_to_string(((Sock*)stream)->endpoint()), > PermString(comTable[index].perm)); > dprintf(comTable[index].dprintf_flag, > "DaemonCore: received command %d (%s), calling handler (%s)\n", > req, comTable[index].command_descrip, > comTable[index].handler_descrip); > } > > } else { > dprintf((1<<0), > "DaemonCore: Command received via %s%s%s from host %s\n", > (is_tcp) ? "TCP" : "UDP", > (user[0] != '\0') ? " from " : "", > (user[0] != '\0') ? user : "", > sin_to_string(((Sock*)stream)->endpoint()) ); > dprintf((1<<0), > "DaemonCore: received unregistered command request %d !\n",req); > > result = 0; > > if ( !is_tcp) > stream->end_of_message(); > } ># 4217 "daemon_core.C" > if ( reqFound == 1 ) { > > curr_dataptr = &(comTable[index].data_ptr); > > dprintf((1<<19), "Calling HandleReq <%s> (%d)\n", comTable[index].handler_descrip, inServiceCommandSocket_flag); > if ( comTable[index].is_cpp ) { > > if ( comTable[index].handlercpp ) > result = (comTable[index].service->*(comTable[index].handlercpp))(req,stream); > } else { > > if ( comTable[index].handler ) > result = (*(comTable[index].handler))(comTable[index].service,req,stream); > } > dprintf((1<<19), "Return from HandleReq <%s>\n", comTable[index].handler_descrip); > > > curr_dataptr = __null; > } > >finalize: ># 4246 "daemon_core.C" > if (the_policy) { > delete the_policy; > } > if (the_key) { > delete the_key; > } > if (the_sid) { > free(the_sid); > } > if (who) { > free(who); > } > if ( result != KEEP_STREAM ) { > stream->encode(); > if ( is_tcp ) { > stream->end_of_message(); > if ( insock != stream ) > delete stream; > } else { > stream->end_of_message(); > > > stream->set_MD_mode(MD_OFF); > stream->set_crypto_key(false, __null); > > result = KEEP_STREAM; > > } > } else { > if (!is_tcp) { > stream->end_of_message(); > stream->set_MD_mode(MD_OFF); > stream->set_crypto_key(false, __null); > } > } > > > > > if ( result == KEEP_STREAM || insock != stream ) > return KEEP_STREAM; > else > return 1; >} > > >int DaemonCore::HandleSigCommand(int command, Stream* stream) { > int sig; > > ((command == (60000 +0)) ? static_cast<void> (0) : __assert_fail ("command == (60000+0)", "daemon_core.C", 4295, __PRETTY_FUNCTION__)); > > > > > if (!stream->code(sig)) > return 0; > > stream->end_of_message(); > > > return( HandleSig(1,sig) ); >} > >int DaemonCore::HandleSig(int command,int sig) >{ > int j,index; > int sigFound; > > > > if ( sig < 0 ) > index = -sig % maxSig; > else > index = sig % maxSig; > > sigFound = 0; > if (sigTable[index].num == sig) { > > sigFound = 1; > } else { > > for (j = (index + 1) % maxSig; j != index; j = (j + 1) % maxSig) > if(sigTable[j].num == sig) { > sigFound = 1; > index = j; > break; > } > } > > if ( sigFound == 0 ) { > dprintf((1<<0), > "DaemonCore: received request for unregistered Signal %d !\n",sig); > return 0; > } > > switch (command) { > case 1: > dprintf((1<<18), > "DaemonCore: received Signal %d (%s), raising event %s\n", sig, > sigTable[index].sig_descrip, sigTable[index].handler_descrip); > > > > sigTable[index].is_pending = 1; > break; > case 2: > sigTable[index].is_blocked = 1; > break; > case 3: > sigTable[index].is_blocked = 0; > > > > > if ( sigTable[index].is_pending == 1 ) > sent_signal = 1; > break; > default: > dprintf((1<<18), > "DaemonCore: HandleSig(): unrecognized command\n"); > return 0; > break; > } > > > return 1; >} > >bool DCSignalMsg::codeMsg( DCMessenger *, Sock *sock ) >{ > if( !sock->code( m_signal ) ) { > sockFailed( sock ); > return false; > } > return true; >} > >void DCSignalMsg::reportFailure( DCMessenger * ) >{ > dprintf((1<<0), > "Send_Signal: ERROR sending signal %d (%s) to pid %d (%s)\n", > theSignal(),signalName(),thePid(), > daemonCore->Is_Pid_Alive(thePid()) ? "still alive" : "no longer exists"); >} > >void DCSignalMsg::reportSuccess( DCMessenger * ) >{ > dprintf((1<<18), > "Send_Signal: sent signal %d (%s) to pid %d\n", > theSignal(),signalName(),thePid()); >} > >char const *DCSignalMsg::signalName() >{ > switch(theSignal()) { > case 10: > return "SIGUSR1"; > case 12: > return "SIGUSR2"; > case 15: > return "SIGTERM"; > case 19: > return "SIGSTOP"; > case 18: > return "SIGCONT"; > case 3: > return "SIGQUIT"; > case 9: > return "SIGKILL"; > } > > > > char const *sigName = getCommandString(theSignal()); > if(!sigName) { > > return ""; > } > return sigName; >} > >bool DaemonCore::Send_Signal(pid_t pid, int sig) >{ > classy_counted_ptr<DCSignalMsg> msg = new DCSignalMsg(pid,sig); > Send_Signal(msg, false); > > > > return msg->deliveryStatus() == DCMsg::DELIVERY_SUCCEEDED; >} > >void DaemonCore::Send_Signal_nonblocking(classy_counted_ptr<DCSignalMsg> msg) { > Send_Signal( msg, true ); > > > > > > if( !msg->messengerDelivery() ) { > switch( msg->deliveryStatus() ) { > case DCMsg::DELIVERY_SUCCEEDED: > msg->messageSent( __null, __null ); > break; > case DCMsg::DELIVERY_FAILED: > case DCMsg::DELIVERY_PENDING: > > > > msg->messageSendFailed( __null ); > break; > } > } >} > >void DaemonCore::Send_Signal(classy_counted_ptr<DCSignalMsg> msg, bool nonblocking) >{ > pid_t pid = msg->thePid(); > int sig = msg->theSignal(); > PidEntry * pidinfo = __null; > int same_thread, is_local; > char *destination; > int target_has_dcpm = 1; > > > > int signed_pid = (int) pid; > if ( signed_pid > -10 && signed_pid < 3 ) { > _EXCEPT_Line = 4473; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Send_Signal: sent unsafe pid (%d)",signed_pid); > } > > > > if ( pid != mypid ) { > if ( pidTable->lookup(pid,pidinfo) < 0 ) { > > pidinfo = __null; > target_has_dcpm = 0; > } > if ( pidinfo && pidinfo->sinful_string[0] == '\0' ) { > > > target_has_dcpm = 0; > } > } > > > > > if (privsep_enabled()) { > if (!target_has_dcpm && pidinfo && pidinfo->new_process_group) { > if( !(m_proc_family != __null) ) { _EXCEPT_Line = 4496; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_proc_family != __null"); }; > bool ok = m_proc_family->signal_process(pid, sig); > if (ok) { > > msg->deliveryStatus( DCMsg::DELIVERY_SUCCEEDED ); > } else { > dprintf((1<<0), > "error using procd to send signal %d to pid %u\n", > sig, > pid); > } > return; > } > } > > > > switch (sig) { > case 9: > if( Shutdown_Fast(pid) ) { > msg->deliveryStatus( DCMsg::DELIVERY_SUCCEEDED ); > } > return; > break; > case 19: > if( Suspend_Process(pid) ) { > msg->deliveryStatus( DCMsg::DELIVERY_SUCCEEDED ); > } > return; > break; > case 18: > if( Continue_Process(pid) ) { > msg->deliveryStatus( DCMsg::DELIVERY_SUCCEEDED ); > } > return; > break; ># 4547 "daemon_core.C" > default: { > > bool use_kill = false; > if( pid == mypid ) { > > > > use_kill = false; > } > else if( target_has_dcpm == 0 ) { > use_kill = true; > } > else if( target_has_dcpm == 1 && > (sig == 10 || sig == 12 || sig == 3 || > sig == 15 || sig == 1) ) > { ># 4572 "daemon_core.C" > use_kill = true; > } > > if ( use_kill ) { > const char* tmp = signalName(sig); > dprintf( (1<<18), > "Send_Signal(): Doing kill(%d,%d) [%s]\n", > pid, sig, tmp ? tmp : "Unknown" ); > priv_state priv = _set_priv(PRIV_ROOT, "daemon_core.C", 4580, 1); > int status = ::kill(pid, sig); > _set_priv(priv, "daemon_core.C", 4582, 1); > > if (status >= 0) { > msg->deliveryStatus( DCMsg::DELIVERY_SUCCEEDED ); > } > else if( target_has_dcpm == 1 ) { > > break; > } > return; > } > > break; > } > } ># 4613 "daemon_core.C" > same_thread = 1; > > > > if ( pid == mypid ) { > if ( same_thread == 1 ) { > > > HandleSig(1,sig); > sent_signal = 1; > > > > > > > if ( async_sigs_unblocked == 1 ) { > write(async_pipe[1],"!",1); > } > > msg->deliveryStatus( DCMsg::DELIVERY_SUCCEEDED ); > return; > } else { > > > > destination = InfoCommandSinfulString(); > is_local = 1; > } > } > > > if ( pid != mypid ) { > if ( target_has_dcpm == 0 || pidinfo == __null) { > > dprintf((1<<0), > "Send_Signal: ERROR Attempt to send signal %d to pid %d, but pid %d has no command socket\n", > sig,pid,pid); > return; > } > > is_local = pidinfo->is_local; > destination = pidinfo->sinful_string; > } > > classy_counted_ptr<Daemon> d = new Daemon( DT_ANY, destination ); > Stream::stream_type sock_type = Stream::reli_sock; > int timeout = 20; > bool blocking = !nonblocking; > > > if ( is_local == 1 ) { > sock_type = Stream::safe_sock; > if( !nonblocking ) timeout = 3; > } > > msg->messengerDelivery( true ); > d->sendMsg( msg.get(), sock_type, timeout, blocking ); >} > >int DaemonCore::Shutdown_Fast(pid_t pid) >{ > > dprintf((1<<23),"called DaemonCore::Shutdown_Fast(%d)\n", > pid); > > if ( pid == ppid ) > return 0; > > > clearSession(pid); ># 4739 "daemon_core.C" > priv_state priv = _set_priv(PRIV_ROOT, "daemon_core.C", 4739, 1); > int status = kill(pid, 9); > _set_priv(priv, "daemon_core.C", 4741, 1); > return (status >= 0); > >} > >int DaemonCore::Shutdown_Graceful(pid_t pid) >{ > dprintf((1<<23),"called DaemonCore::Shutdown_Graceful(%d)\n", > pid); > > if ( pid == ppid ) > return 0; > > > clearSession(pid); ># 4811 "daemon_core.C" > if( pid == mypid ) { > _EXCEPT_Line = 4812; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_( "Called Shutdown_Graceful() on yourself, " > "which would cause an infinite loop on UNIX" ); > } > > int status; > priv_state priv = _set_priv(PRIV_ROOT, "daemon_core.C", 4817, 1); > status = kill(pid, 15); > _set_priv(priv, "daemon_core.C", 4819, 1); > return (status >= 0); > > >} > >int DaemonCore::Suspend_Thread(int tid) >{ > PidEntry *pidinfo; > > dprintf((1<<18),"called DaemonCore::Suspend_Thread(%d)\n", > tid); > > > if ( (pidTable->lookup(tid, pidinfo) < 0) > > > > > > > ) > { > dprintf((1<<0),"DaemonCore:Suspend_Thread(%d) failed, bad tid\n", > tid); > return 0; > } > > > > return Suspend_Process(tid); ># 4859 "daemon_core.C" >} > >int DaemonCore::Continue_Thread(int tid) >{ > PidEntry *pidinfo; > > dprintf((1<<18),"called DaemonCore::Continue_Thread(%d)\n", > tid); > > > if ( (pidTable->lookup(tid, pidinfo) < 0) > > > > > > > ) > { > dprintf((1<<0),"DaemonCore:Continue_Thread(%d) failed, bad tid\n", > tid); > return 0; > } > > > > return Continue_Process(tid); ># 4903 "daemon_core.C" >} > >int DaemonCore::Suspend_Process(pid_t pid) >{ > dprintf((1<<18),"called DaemonCore::Suspend_Process(%d)\n", > pid); > > if ( pid == ppid ) > return 0; > > > > > priv_state priv = _set_priv(PRIV_ROOT, "daemon_core.C", 4916, 1); > int status = kill(pid, 19); > _set_priv(priv, "daemon_core.C", 4918, 1); > return (status >= 0); > >} > >int DaemonCore::Continue_Process(pid_t pid) >{ > dprintf((1<<18),"called DaemonCore::Continue_Process(%d)\n", > pid); > > > > > priv_state priv = _set_priv(PRIV_ROOT, "daemon_core.C", 4931, 1); > int status = kill(pid, 18); > _set_priv(priv, "daemon_core.C", 4933, 1); > return (status >= 0); > >} > >int DaemonCore::SetDataPtr(void *dptr) >{ > > > > if ( curr_dataptr == __null ) { > return 0; > } > > *curr_dataptr = dptr; > > return 1; >} > >int DaemonCore::Register_DataPtr(void *dptr) >{ > > > > if ( curr_regdataptr == __null ) { > return 0; > } > > *curr_regdataptr = dptr; > > return 1; >} > >void *DaemonCore::GetDataPtr() >{ > > > > if ( curr_dataptr == __null ) > return __null; > > return ( *curr_dataptr ); >} ># 5021 "daemon_core.C" >void >DaemonCore::Forked_Child_Wants_Exit_By_Exec( bool exit_by_exec ) >{ > if( exit_by_exec ) { > _condor_exit_with_exec = 1; > } >} ># 5051 "daemon_core.C" >extern "C" { >void exit(int status) >{ ># 5062 "daemon_core.C" > fflush( stdout ); > fflush( stderr ); > > if ( _condor_exit_with_exec == 0 ) { > _exit(status); > } > > char* my_argv[2]; > char* my_env[1]; > my_argv[1] = __null; > my_env[0] = __null; > > > if ( status == 0 ) { > my_argv[0] = "/bin/true"; > execve("/bin/true",my_argv,my_env); > my_argv[0] = "/usr/bin/true"; > execve("/usr/bin/true",my_argv,my_env); > } else { > my_argv[0] = "/bin/false"; > execve("/bin/false",my_argv,my_env); > my_argv[0] = "/usr/bin/false"; > execve("/usr/bin/false",my_argv,my_env); > } ># 5094 "daemon_core.C" > _condor_exit_with_exec = 0; > _exit(status ? 1 : 0); >} >} ># 5108 "daemon_core.C" >bool >DaemonCore::Register_Family(pid_t child_pid, > pid_t parent_pid, > int max_snapshot_interval, > PidEnvID* penvid, > const char* login, > gid_t* group) >{ > bool success = false; > bool family_registered = false; > if (!m_proc_family->register_subfamily(child_pid, > parent_pid, > max_snapshot_interval)) > { > dprintf((1<<0), > "Create_Process: error registering family for pid %u\n", > child_pid); > goto REGISTER_FAMILY_DONE; > } > family_registered = true; > if (penvid != __null) { > if (!m_proc_family->track_family_via_environment(child_pid, *penvid)) { > dprintf((1<<0), > "Create_Process: error tracking family " > "with root %u via environment\n", > child_pid); > goto REGISTER_FAMILY_DONE; > } > } > if (login != __null) { > if (!m_proc_family->track_family_via_login(child_pid, login)) { > dprintf((1<<0), > "Create_Process: error tracking family " > "with root %u via login (name: %s)\n", > child_pid, > login); > goto REGISTER_FAMILY_DONE; > } > } > if (group != __null) { > > if (!m_proc_family->track_family_via_supplementary_group(child_pid, > *group)) { > dprintf((1<<0), > "Create_Process: error tracking family " > "with root %u via group ID\n", > child_pid); > goto REGISTER_FAMILY_DONE; > } > > > > > } > success = true; >REGISTER_FAMILY_DONE: > if (family_registered && !success) { > if (!m_proc_family->unregister_family(child_pid)) { > dprintf((1<<0), > "Create_Process: error unregistering family " > "with root %u\n", > child_pid); > } > } > return success; >} ># 5183 "daemon_core.C" >class CreateProcessForkit { >public: > CreateProcessForkit( > const int (&the_errorpipe)[2], > const ArgList &the_args, > int the_job_opt_mask, > const Env *the_env, > const MyString &the_inheritbuf, > pid_t the_forker_pid, > time_t the_time_of_fork, > unsigned int the_mii, > const FamilyInfo *the_family_info, > const char *the_cwd, > const char *the_executable, > const char *the_executable_fullpath, > const int *the_std, > int the_numInheritFds, > const int (&the_inheritFds)[32], > int the_nice_inc, > const priv_state &the_priv, > int the_want_command_port, > const sigset_t *the_sigmask, > size_t *core_hard_limit > ): m_errorpipe(the_errorpipe), m_args(the_args), > m_job_opt_mask(the_job_opt_mask), m_env(the_env), > m_inheritbuf(the_inheritbuf), m_forker_pid(the_forker_pid), > m_time_of_fork(the_time_of_fork), m_mii(the_mii), > m_family_info(the_family_info), m_cwd(the_cwd), > m_executable(the_executable), > m_executable_fullpath(the_executable_fullpath), m_std(the_std), > m_numInheritFds(the_numInheritFds), > m_inheritFds(the_inheritFds), m_nice_inc(the_nice_inc), > m_priv(the_priv), m_want_command_port(the_want_command_port), > m_sigmask(the_sigmask), m_unix_args(0), m_unix_env(0), > m_core_hard_limit(core_hard_limit) > { > } > > ~CreateProcessForkit() { > > > deleteStringArray(m_unix_args); > deleteStringArray(m_unix_env); > } > > pid_t fork_exec(); > void exec(); > static int clone_fn( void *arg ); > > pid_t clone_safe_getpid(); > pid_t clone_safe_getppid(); > >private: > > > > > > const int (&m_errorpipe)[2]; > const ArgList &m_args; > const int m_job_opt_mask; > const Env *m_env; > const MyString &m_inheritbuf; > const pid_t m_forker_pid; > const time_t m_time_of_fork; > const unsigned int m_mii; > const FamilyInfo *m_family_info; > const char *m_cwd; > const char *m_executable; > const char *m_executable_fullpath; > const int *m_std; > const int m_numInheritFds; > const int (&m_inheritFds)[32]; > int m_nice_inc; > const priv_state &m_priv; > const int m_want_command_port; > const sigset_t *m_sigmask; > > > > > > char **m_unix_args; > char **m_unix_env; > size_t *m_core_hard_limit; > Env m_envobject; > PidEnvID m_penvid; >}; > >enum { > STACK_GROWS_UP, > STACK_GROWS_DOWN >}; >static int stack_direction(volatile int *ptr=__null) { > volatile int location; > if(!ptr) return stack_direction(&location); > if (ptr < &location) { > return STACK_GROWS_UP; > } > > return STACK_GROWS_DOWN; >} > >pid_t CreateProcessForkit::clone_safe_getpid() { > > > > > > > return syscall(20); > > > >} >pid_t CreateProcessForkit::clone_safe_getppid() { > > > > return syscall(64); > > > >} > >pid_t CreateProcessForkit::fork_exec() { > pid_t newpid; ># 5326 "daemon_core.C" > if( daemonCore->UseCloneToCreateProcesses() ) { > dprintf((1<<10),"Create_Process: using fast clone() " > "to create child process.\n"); ># 5337 "daemon_core.C" > const int stack_size = 16384; > char child_stack[stack_size]; > > > > > char *child_stack_ptr = child_stack; > if( stack_direction() == STACK_GROWS_DOWN ) { > child_stack_ptr += stack_size; > } > > > dprintf_before_shared_mem_clone(); ># 5359 "daemon_core.C" > newpid = clone( > CreateProcessForkit::clone_fn, > child_stack_ptr, > (0x00000100|0x00004000|17), > this ); > > > > > > dprintf_after_shared_mem_clone(); > > return newpid; > } > > > newpid = fork(); > if( newpid == 0 ) { > > exec(); > } > > return newpid; >} > >int CreateProcessForkit::clone_fn( void *arg ) { > > > > ((CreateProcessForkit *)arg)->exec(); > return 0; >} > >void CreateProcessForkit::exec() { > extern char **environ; ># 5409 "daemon_core.C" > dprintf_init_fork_child(); > > > > close(m_errorpipe[0]); > fcntl(m_errorpipe[1], 2, 1); ># 5443 "daemon_core.C" > pid_t pid = clone_safe_getpid(); > pid_t ppid = clone_safe_getppid(); > DaemonCore::PidEntry* pidinfo = __null; > if( (daemonCore->pidTable->lookup(pid, pidinfo) >= 0) ) { > > > int child_errno = DaemonCore::ERRNO_PID_COLLISION; > write(m_errorpipe[1], &child_errno, sizeof(child_errno)); > exit(4); > } ># 5462 "daemon_core.C" > if( (!(((m_job_opt_mask)&DCJOBOPT_NO_ENV_INHERIT))) ) { > m_envobject.MergeFrom((const char**)environ); > } > > > > > if(m_env) { > m_envobject.MergeFrom(*m_env); > } > > > > if( (!(((m_job_opt_mask)&DCJOBOPT_NO_ENV_INHERIT))) ) { > > > > m_envobject.SetEnv( EnvGetName( ENV_INHERIT ), m_inheritbuf.Value() ); > > > > > > > char *display; > display = param ( "PURIFY_DISPLAY" ); > if ( display ) { > m_envobject.SetEnv( "DISPLAY", display ); > free ( display ); > char *purebuf; > purebuf = (char*)malloc(sizeof(char) * > (strlen("-program-name=") + strlen(m_executable) + > 1)); > if (purebuf == __null) { > _EXCEPT_Line = 5496; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Create_Process: PUREOPTIONS is out of memory!"); > } > sprintf ( purebuf, "-program-name=%s", m_executable ); > m_envobject.SetEnv( "PUREOPTIONS", purebuf ); > free(purebuf); > } > } ># 5513 "daemon_core.C" > char envid[(sizeof("_CONDOR_ANCESTOR_") + ((sizeof(pid_t) * 2) + (sizeof(pid_t) / 2) + 1) + 1 + ((sizeof(pid_t) * 2) + (sizeof(pid_t) / 2) + 1) + 1 + ((sizeof(time_t) * 2) + (sizeof(time_t) / 2)) + 1 + ((sizeof(unsigned int) * 2) + (sizeof(unsigned int) / 2)) + 0)]; > > pidenvid_init(&m_penvid); > > > > > if ( ((m_job_opt_mask)&DCJOBOPT_NO_ENV_INHERIT) ) { > int i; > > > > if (pidenvid_filter_and_insert(&m_penvid, environ) == > PIDENVID_OVERSIZED) > { > dprintf ( (1<<0), "Create_Process: Failed to filter ancestor " > "history from parent's environment because there are more " > "than PIDENVID_MAX(%d) of them! Programmer Error.\n", > 32 ); > > > write(m_errorpipe[1], &(*__errno_location ()), sizeof((*__errno_location ()))); > exit((*__errno_location ())); > } > > > for (i = 0; i < 32; i++) { > if (m_penvid.ancestors[i].active == 1) { > m_envobject.SetEnv( m_penvid.ancestors[i].envid ); > } else { > > > break; > } > } > } > > > if (pidenvid_format_to_envid(envid, (sizeof("_CONDOR_ANCESTOR_") + ((sizeof(pid_t) * 2) + (sizeof(pid_t) / 2) + 1) + 1 + ((sizeof(pid_t) * 2) + (sizeof(pid_t) / 2) + 1) + 1 + ((sizeof(time_t) * 2) + (sizeof(time_t) / 2)) + 1 + ((sizeof(unsigned int) * 2) + (sizeof(unsigned int) / 2)) + 0), > m_forker_pid, pid, m_time_of_fork, m_mii) == PIDENVID_BAD_FORMAT) > { > dprintf ( (1<<0), "Create_Process: Failed to create envid " > "\"%s\" due to bad format. !\n", envid ); > > > write(m_errorpipe[1], &(*__errno_location ()), sizeof((*__errno_location ()))); > exit((*__errno_location ())); > } > > > > if (pidenvid_append(&m_penvid, envid) == PIDENVID_OK) { > m_envobject.SetEnv( envid ); > } else { > dprintf ( (1<<0), "Create_Process: Failed to insert envid " > "\"%s\" because its insertion would mean more than " > "PIDENVID_MAX entries in a process! Programmer " > "Error.\n", envid ); > > > write(m_errorpipe[1], &(*__errno_location ()), sizeof((*__errno_location ()))); > exit((*__errno_location ())); > } > > > > m_unix_env = m_envobject.getStringArray(); > > > > > > > if( m_args.Count() == 0 ) { > dprintf((1<<18), "Create_Process: Arg: NULL\n"); > ArgList tmpargs; > tmpargs.AppendArg(m_executable); > m_unix_args = tmpargs.GetStringArray(); > } > else { > if(DebugFlags & (1<<18)) { > MyString arg_string; > m_args.GetArgsStringForDisplay(&arg_string); > dprintf((1<<18), "Create_Process: Arg: %s\n", arg_string.Value()); > } > m_unix_args = m_args.GetStringArray(); > } > > > > if( ( m_family_info != __null ) ) { > > > if(param_boolean( "USE_PROCESS_GROUPS", true )) { > > > if( setsid() == -1 ) > { > dprintf((1<<0), "Create_Process: setsid() failed: %s\n", > strerror((*__errno_location ())) ); > > > write(m_errorpipe[1], &(*__errno_location ()), sizeof((*__errno_location ()))); > exit((*__errno_location ())); > } > } > > > > > > if( !(daemonCore->m_proc_family != __null) ) { _EXCEPT_Line = 5624; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","daemonCore->m_proc_family != __null"); }; > if (daemonCore->m_proc_family->register_from_child()) { ># 5637 "daemon_core.C" > PidEnvID* penvid_ptr = &m_penvid; > > > > > > > gid_t tracking_gid; > gid_t* tracking_gid_ptr = __null; > > tracking_gid_ptr = m_family_info->group_ptr; > > > bool ok = > daemonCore->Register_Family(pid, > ppid, > m_family_info->max_snapshot_interval, > penvid_ptr, > m_family_info->login, > tracking_gid_ptr); > if (!ok) { > (*__errno_location ()) = DaemonCore::ERRNO_REGISTRATION_FAILED; > write(m_errorpipe[1], &(*__errno_location ()), sizeof((*__errno_location ()))); > exit(4); > } > > if (tracking_gid_ptr != __null) { > set_user_tracking_gid(*tracking_gid_ptr); > } > } > } > > int openfds = getdtablesize(); > > > if ( m_std ) { > > dprintf ( (1<<18), "Re-mapping std(in|out|err) in child.\n"); > > for (int i = 0; i < 3; i++) { > if ( m_std[i] > -1 ) { > int fd = m_std[i]; > if (fd >= PIPE_INDEX_OFFSET) { > > > > int index = fd - PIPE_INDEX_OFFSET; > fd = (*daemonCore->pipeHandleTable)[index]; > } > if ( ( dup2 ( fd, i ) ) == -1 ) { > dprintf( (1<<0), > "dup2 of m_std[%d] failed: %s (%d)\n", > i, > strerror((*__errno_location ())), > (*__errno_location ()) ); > } > } else { > > > close( i ); > } > } > > } else { > MyString msg = "Just closed standard file fd(s): "; ># 5711 "daemon_core.C" > int num_closed = 0; > int closed_fds[3]; > for ( int q=0 ; (q<openfds) && (q<3) ; q++ ) { > bool found = 0; > for ( int k=0 ; k < m_numInheritFds ; k++ ) { > if ( m_inheritFds[k] == q ) { > found = 1; > break; > } > } > > if ( ( ! found ) && ( close ( q ) != -1 ) ) { > closed_fds[num_closed++] = q; > msg += q; > msg += ' '; > } > } > dprintf( (1<<18), "%s\n", msg.Value() ); > > > if ( num_closed ) { > int fd_null = safe_open_wrapper( NULL_FILE, 02 ); > if ( fd_null < 0 ) { > dprintf( (1<<0), "Unable to open %s: %s\n", NULL_FILE, > strerror((*__errno_location ())) ); > } else { > int i; > for ( i=0; i<num_closed; i++ ) { > if ( ( closed_fds[i] != fd_null ) && > ( dup2( fd_null, closed_fds[i] ) < 0 ) ) { > dprintf( (1<<0), > "Error dup2()ing %s -> %d: %s\n", > NULL_FILE, > closed_fds[i], strerror((*__errno_location ())) ); > } > } > > if ( fd_null > 2 ) { > close( fd_null ); > } > } > } > } > > > > if( m_nice_inc > 0 ) { > if( m_nice_inc > 19 ) { > m_nice_inc = 19; > } > dprintf ( (1<<18), "calling nice(%d)\n", m_nice_inc ); > nice( m_nice_inc ); > } > > MyString msg = "Printing fds to inherit: "; > for ( int a=0 ; a<m_numInheritFds ; a++ ) { > msg += m_inheritFds[a]; > msg += ' '; > } > dprintf( (1<<18), "%s\n", msg.Value() ); > > > > > > > if (m_core_hard_limit != __null) { > limit(RLIMIT_CORE, *m_core_hard_limit, CONDOR_HARD_LIMIT); > } > > dprintf ( (1<<18), "About to exec \"%s\"\n", m_executable_fullpath ); ># 5810 "daemon_core.C" > dprintf_wrapup_fork_child(); > > bool found; > for ( int j=3 ; j < openfds ; j++ ) { > if ( j == m_errorpipe[1] ) continue; > > found = 0; > for ( int k=0 ; k < m_numInheritFds ; k++ ) { > if ( m_inheritFds[k] == j ) { > found = 1; > break; > } > } > > if( !found ) { > close( j ); > } > } > > > if ( m_priv != PRIV_UNKNOWN ) { > > > > > > _set_priv(m_priv, "daemon_core.C", 5836, 999); > > > > > unset_user_tracking_gid(); > > > > > > > } > > if ( m_priv != PRIV_ROOT ) { > > if( getuid() == 0 ) { > int priv_errno = DaemonCore::ERRNO_EXEC_AS_ROOT; > write(m_errorpipe[1], &priv_errno, sizeof(priv_errno)); > exit(4); > } > } > > > if ( m_cwd && m_cwd[0] ) { > if( chdir(m_cwd) == -1 ) { > > > write(m_errorpipe[1], &(*__errno_location ()), sizeof((*__errno_location ()))); > exit((*__errno_location ())); > } > } > > > > if ( !m_want_command_port ) { > const sigset_t* new_mask = m_sigmask; > sigset_t empty_mask; > if (new_mask == __null) { > sigemptyset(&empty_mask); > new_mask = &empty_mask; > } > if (sigprocmask(2, new_mask, __null) == -1) { > write(m_errorpipe[1], &(*__errno_location ()), sizeof((*__errno_location ()))); > exit((*__errno_location ())); > } > } > > > if( ((m_job_opt_mask)&DCJOBOPT_SUSPEND_ON_EXEC) ) { > if(ptrace(PTRACE_TRACEME, 0, 0, 0) == -1) { > write(m_errorpipe[1], &(*__errno_location ()), sizeof((*__errno_location ()))); > exit ((*__errno_location ())); > } > } > > > > pidenvid_optimize_final_env(m_unix_env); > > > int exec_results; > exec_results = execve(m_executable_fullpath, m_unix_args, m_unix_env); > > if( exec_results == -1 ) { > > > > > write(m_errorpipe[1], &(*__errno_location ()), sizeof((*__errno_location ()))); > exit((*__errno_location ())); > } >} > > >int DaemonCore::Create_Process( > const char *executable, > ArgList const &args, > priv_state priv, > int reaper_id, > int want_command_port, > Env const *env, > const char *cwd, > FamilyInfo *family_info, > Stream *sock_inherit_list[], > int std[], > int fd_inherit_list[], > int nice_inc, > sigset_t *sigmask, > int job_opt_mask, > size_t *core_hard_limit > ) >{ > int i; > char *ptmp; > int inheritFds[32]; > int numInheritFds = 0; > extern char **environ; > MyString executable_buf; > > > > > > int return_errno = 0; > pid_t newpid = 0; > > MyString inheritbuf; > > > ReliSock rsock; > SafeSock ssock; > PidEntry *pidtmp; > > > time_t time_of_fork; > unsigned int mii; > pid_t forker_pid; ># 5971 "daemon_core.C" > int inherit_handles; > int max_pid_retry = 0; > static int num_pid_collisions = 0; > int errorpipe[2]; > MyString executable_fullpath_buf; > char const *executable_fullpath = executable; > > > dprintf((1<<18),"In DaemonCore::Create_Process(%s,...)\n",executable ? executable : "NULL"); > > > > > if ( (reaper_id < 1) || (reaper_id > maxReap) > || (reapTable[reaper_id - 1].num == 0) ) { > dprintf((1<<0),"Create_Process: invalid reaper_id\n"); > goto wrapup; > } > > > if ( !executable ) { > dprintf((1<<0),"Create_Process: null name to exec\n"); > goto wrapup; > } > > inheritbuf.sprintf("%lu ",(unsigned long)mypid); > > > > > > inheritbuf += InfoCommandSinfulStringMyself(true); > > if ( sock_inherit_list ) { > inherit_handles = 1; > for (i = 0 ; > (sock_inherit_list[i] != __null) && (i < 10) ; > i++) > { > > > > Sock *tempSock = ((Sock *) sock_inherit_list[i] ); > if ( tempSock ) { > inheritFds[numInheritFds] = tempSock->get_file_desc(); > numInheritFds++; > > if ( !(tempSock->set_inheritable(1)) ) { > goto wrapup; > } > } > else { > dprintf ( (1<<0), "Dynamic cast failure!\n" ); > _EXCEPT_Line = 6024; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_( "dynamic_cast" ); > } > > > switch ( sock_inherit_list[i]->type() ) { > case Stream::reli_sock : > inheritbuf += " 1 "; > break; > case Stream::safe_sock : > inheritbuf += " 2 "; > break; > default: > > ((0) ? static_cast<void> (0) : __assert_fail ("0", "daemon_core.C", 6037, __PRETTY_FUNCTION__)); > break; > } > > ptmp = sock_inherit_list[i]->serialize(); > inheritbuf += ptmp; > delete []ptmp; > } > } > inheritbuf += " 0"; > > > > > if ( want_command_port != 0 ) { > inherit_handles = 1; > SafeSock* ssock_ptr = m_wants_dc_udp ? &ssock : __null; > if (!InitCommandSockets(want_command_port, &rsock, ssock_ptr, false)) { > > goto wrapup; > } > > > if ( (!rsock.set_inheritable(1)) || > (m_wants_dc_udp && !ssock.set_inheritable(1)) ) { > dprintf((1<<0),"Create_Process:Failed to set command " > "socks inheritable\n"); > goto wrapup; > } > > > inheritbuf += " "; > ptmp = rsock.serialize(); > inheritbuf += ptmp; > delete []ptmp; > if (m_wants_dc_udp) { > inheritbuf += " "; > ptmp = ssock.serialize(); > inheritbuf += ptmp; > delete []ptmp; > } > > > inheritFds[numInheritFds++] = rsock.get_file_desc(); > if (m_wants_dc_udp) { > inheritFds[numInheritFds++] = ssock.get_file_desc(); > } > } > inheritbuf += " 0"; > > > > > if (fd_inherit_list != __null) { > > > > > for (int* fd_ptr = fd_inherit_list; *fd_ptr != 0; fd_ptr++) { > inheritFds[numInheritFds++] = *fd_ptr; > if (numInheritFds > 32) { > _EXCEPT_Line = 6098; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Create_Process: MAX_INHERIT_FDS (%d) reached", > 32); > } > } > > } > > > > create_id(&time_of_fork, &mii); > > > > > > > if ((family_info != __null) && (m_proc_family == __null)) { > m_proc_family = ProcFamilyInterface::create(mySubSystem); > if( !(m_proc_family) ) { _EXCEPT_Line = 6116; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_proc_family"); }; > } ># 6474 "daemon_core.C" > priv_state current_priv; > if ( priv != PRIV_UNKNOWN ) { > if ( priv == PRIV_USER_FINAL ) { > current_priv = _set_priv(PRIV_USER, "daemon_core.C", 6477, 1); > } else { > current_priv = _set_priv(priv, "daemon_core.C", 6479, 1); > } > } > > > if( access_euid(executable,0 | 1) < 0 ) { > return_errno = (*__errno_location ()); > dprintf( (1<<0), "Create_Process: " > "Cannot access specified executable \"%s\": " > "errno = %d (%s)\n", executable, (*__errno_location ()), strerror((*__errno_location ())) ); > if ( priv != PRIV_UNKNOWN ) { > _set_priv(current_priv, "daemon_core.C", 6490, 1); > } > goto wrapup; > } > > > struct stat stat_struct; > if( cwd && (cwd[0] != '\0') ) { > if( stat(cwd, &stat_struct) == -1 ) { > return_errno = (*__errno_location ()); > dprintf( (1<<0), "Create_Process: " > "Cannot access specified cwd \"%s\": " > "errno = %d (%s)\n", cwd, (*__errno_location ()), strerror((*__errno_location ())) ); > if ( priv != PRIV_UNKNOWN ) { > _set_priv(current_priv, "daemon_core.C", 6504, 1); > } > goto wrapup; > } > } > > > if ( priv != PRIV_UNKNOWN ) { > _set_priv(current_priv, "daemon_core.C", 6512, 1); > } > > > > > > if( cwd && (cwd[0] != '\0') ) { > > if ( executable[0] != '/' ) { > MyString currwd; > if ( !condor_getcwd( currwd ) ) { > dprintf ( (1<<0), "Create_Process: getcwd failed\n" ); > goto wrapup; > } > > executable_fullpath_buf.sprintf("%s/%s", currwd.Value(), executable); > executable_fullpath = executable_fullpath_buf.Value(); > > > dprintf ( (1<<18), "Full path exec name: %s\n", executable_fullpath ); > } > > } ># 6549 "daemon_core.C" > if (pipe(errorpipe) < 0) { > dprintf((1<<0),"Create_Process: pipe() failed with errno %d (%s).\n", > (*__errno_location ()), strerror((*__errno_location ()))); > goto wrapup; > } > > > forker_pid = ::getpid(); ># 6566 "daemon_core.C" > sigset_t saved_mask; > if (sigmask != __null) { > > > > if( !(!want_command_port) ) { _EXCEPT_Line = 6571; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","!want_command_port"); }; > > if (sigprocmask(0, sigmask, &saved_mask) == -1) { > dprintf((1<<0), > "Create_Process: sigprocmask error: %s (%d)\n", > strerror((*__errno_location ())), > (*__errno_location ())); > goto wrapup; > } > } > > { > > > > > CreateProcessForkit forkit( > errorpipe, > args, > job_opt_mask, > env, > inheritbuf, > forker_pid, > time_of_fork, > mii, > family_info, > cwd, > executable, > executable_fullpath, > std, > numInheritFds, > inheritFds, > nice_inc, > priv, > want_command_port, > sigmask, > core_hard_limit); > > newpid = forkit.fork_exec(); > } > > if( newpid > 0 ) > { > > > > > > if (sigmask != __null) { > if (sigprocmask(2, &saved_mask, __null) == -1) { > _EXCEPT_Line = 6621; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Create_Process: sigprocmask error: %s (%d)\n", > strerror((*__errno_location ())), > (*__errno_location ())); > } > } > > > close(errorpipe[1]); > > > int child_errno = 0; > if (read(errorpipe[0], &child_errno, sizeof(int)) == sizeof(int)) { > > > > > int child_status; > waitpid(newpid, &child_status, 0); > (*__errno_location ()) = child_errno; > return_errno = (*__errno_location ()); > switch( (*__errno_location ()) ) { > > case ERRNO_EXEC_AS_ROOT: > dprintf( (1<<0), "Create_Process: child failed because " > "%s process was still root before exec()\n", > priv_to_string(priv) ); > break; > > case ERRNO_REGISTRATION_FAILED: > dprintf( (1<<0), "Create_Process: child failed becuase " > "it failed to register itself with the ProcD\n" ); > break; > > case ERRNO_PID_COLLISION: ># 6663 "daemon_core.C" > dprintf( (1<<0), "Create_Process: child failed because " > "PID %d is still in use by DaemonCore\n", > (int)newpid ); > num_pid_collisions++; > max_pid_retry = param_integer( "MAX_PID_COLLISION_RETRY", > DEFAULT_MAX_PID_COLLISIONS ); > if( num_pid_collisions > max_pid_retry ) { > dprintf( (1<<0), "Create_Process: ERROR: we've had " > "%d consecutive pid collisions, giving up! " > "(%d PIDs being tracked internally.)\n", > num_pid_collisions, pidTable->getNumElements() ); > > > > break; > } > > > > > > > close(errorpipe[0]); > > > > > > rsock.close(); > ssock.close(); > dprintf( (1<<0), "Re-trying Create_Process() to avoid " > "PID re-use\n" ); > return Create_Process( executable, args, priv, reaper_id, > want_command_port, env, cwd, > family_info, > sock_inherit_list, std, fd_inherit_list, > nice_inc, sigmask, job_opt_mask ); > break; > > default: > dprintf( (1<<0), "Create_Process: child failed with " > "errno %d (%s) before exec()\n", (*__errno_location ()), > strerror((*__errno_location ())) ); > break; > > } > close(errorpipe[0]); > newpid = 0; > goto wrapup; > } > close(errorpipe[0]); > > > > > if( ((job_opt_mask)&DCJOBOPT_SUSPEND_ON_EXEC) ) { > > > > priv_state prev_priv; > prev_priv = _set_priv(PRIV_USER, "daemon_core.C", 6723, 1); > int rval = tdp_wait_stopped_child( newpid ); > _set_priv(prev_priv, "daemon_core.C", 6725, 1); > if( rval == -1 ) { > return_errno = (*__errno_location ()); > dprintf((1<<0), "Create_Process wait failed: %d (%s)\n", > (*__errno_location ()), strerror ((*__errno_location ())) ); > newpid = 0; > goto wrapup; > } > > > > > } > } > else if( newpid < 0 ) > { > dprintf((1<<0), "Create Process: fork() failed: %s (%d)\n", > strerror((*__errno_location ())), (*__errno_location ()) ); > close(errorpipe[0]); close(errorpipe[1]); > newpid = 0; > goto wrapup; > } > > > > pidtmp = new PidEntry; > pidtmp->pid = newpid; > pidtmp->new_process_group = (family_info != __null); > if ( want_command_port != 0 ) > strcpy(pidtmp->sinful_string,sock_to_string(rsock._sock)); > else > pidtmp->sinful_string[0] = '\0'; > pidtmp->is_local = 1; > pidtmp->parent_is_local = 1; > pidtmp->reaper_id = reaper_id; > pidtmp->hung_tid = -1; > pidtmp->was_not_responding = 0; ># 6772 "daemon_core.C" > pidenvid_init(&pidtmp->penvid); > if (pidenvid_filter_and_insert(&pidtmp->penvid, environ) != > PIDENVID_OK) > { > _EXCEPT_Line = 6776; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_( "Create_Process: More ancestor environment IDs found than " > "PIDENVID_MAX which is currently %d. Programmer Error.", > 32 ); > } > if (pidenvid_append_direct(&pidtmp->penvid, > forker_pid, newpid, time_of_fork, mii) == PIDENVID_OVERSIZED) > { > _EXCEPT_Line = 6783; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_( "Create_Process: Cannot add child pid to PidEnvID table " > "because there aren't enough entries. PIDENVID_MAX is " > "currently %d! Programmer Error.", 32 ); > } > > > { > int insert_result = pidTable->insert(newpid,pidtmp); > ((insert_result == 0) ? static_cast<void> (0) : __assert_fail ("insert_result == 0", "daemon_core.C", 6791, __PRETTY_FUNCTION__)); > } > > > > > > if ((family_info != __null) && !m_proc_family->register_from_child()) { > Register_Family(newpid, > getpid(), > family_info->max_snapshot_interval, > &pidtmp->penvid, > family_info->login, > __null); > } > > > dprintf((1<<18), > "Child Process: pid %lu at %s\n", > (unsigned long)newpid,pidtmp->sinful_string); ># 6819 "daemon_core.C" > wrapup: > > > > > > num_pid_collisions = 0; > > > > > > > (*__errno_location ()) = return_errno; > return newpid; >} ># 6859 "daemon_core.C" >class FakeCreateThreadReaperCaller: public Service { >public: > FakeCreateThreadReaperCaller(int exit_status,int reaper_id); > > void CallReaper(); > > int FakeThreadID() { return m_tid; } > >private: > int m_tid; > int m_exit_status; > int m_reaper_id; >}; > >FakeCreateThreadReaperCaller::FakeCreateThreadReaperCaller(int exit_status,int reaper_id): > m_exit_status(exit_status), m_reaper_id(reaper_id) >{ > > > > m_tid = daemonCore->Register_Timer( > 0, > (Eventcpp)&FakeCreateThreadReaperCaller::CallReaper, > "FakeCreateThreadReaperCaller::CallReaper()", > this ); > > if( !(m_tid >= 0) ) { _EXCEPT_Line = 6885; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_tid >= 0"); }; >} > >void >FakeCreateThreadReaperCaller::CallReaper() { > daemonCore->CallReaper( m_reaper_id, "fake thread", m_tid, m_exit_status ); > delete this; >} > >int >DaemonCore::Create_Thread(ThreadStartFunc start_func, void *arg, Stream *sock, > int reaper_id) >{ > > if ( (reaper_id < 1) || (reaper_id > maxReap) > || (reapTable[reaper_id - 1].num == 0) ) { > dprintf((1<<0),"Create_Thread: invalid reaper_id\n"); > return 0; > } > > if( DoFakeCreateThread() ) { > > > > > > > Stream *s = sock ? sock->CloneStream() : (Stream *)__null; > > priv_state saved_priv = get_priv(); > int exit_status = start_func(arg,s); > > > > exit_status = exit_status<<8; > > > priv_state new_priv = get_priv(); > if( saved_priv != new_priv ) { > char const *reaper = > reaper_id > 0 ? reapTable[reaper_id-1].handler_descrip : __null; > dprintf((1<<0), > "Create_Thread: UNEXPECTED: priv state changed " > "during worker function: %d %d (%s)\n", > (int)saved_priv, (int)new_priv, > reaper ? reaper : "no reaper" ); > _set_priv(saved_priv, "daemon_core.C", 6931, 1); > } > > FakeCreateThreadReaperCaller *reaper_caller = > new FakeCreateThreadReaperCaller( exit_status, reaper_id ); > > return reaper_caller->FakeThreadID(); > } > > > > > (void)InfoCommandSinfulString(); ># 6972 "daemon_core.C" > static int num_pid_collisions = 0; > int max_pid_retry = 0; > int errorpipe[2]; > if (pipe(errorpipe) < 0) { > dprintf( (1<<0), > "Create_Thread: pipe() failed with errno %d (%s)\n", > (*__errno_location ()), strerror((*__errno_location ())) ); > return 0; > } > int tid; > tid = fork(); > if (tid == 0) { > _condor_exit_with_exec = 1; > > > close(errorpipe[0]); > fcntl(errorpipe[1], 2, 1); > > dprintf_init_fork_child(); > > pid_t pid = ::getpid(); > PidEntry* pidinfo = __null; > if( (pidTable->lookup(pid, pidinfo) >= 0) ) { > > > int child_errno = ERRNO_PID_COLLISION; > write(errorpipe[1], &child_errno, sizeof(child_errno)); > close( errorpipe[1] ); > exit(4); > } > > > close( errorpipe[1] ); > exit(start_func(arg, sock)); > } else if ( tid > 0 ) { > > close( errorpipe[1] ); > > bool had_child_error = false; > int child_errno = 0; > if( read(errorpipe[0], &child_errno, sizeof(int)) == sizeof(int) ) { > had_child_error = true; > } > close( errorpipe[0] ); > if( had_child_error ) { > > > > > int child_status; > waitpid(tid, &child_status, 0); > if( child_errno != ERRNO_PID_COLLISION ) { > _EXCEPT_Line = 7024; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_( "Impossible: Create_Thread child_errno (%d) is not " > "ERRNO_PID_COLLISION!", child_errno ); > } > dprintf( (1<<0), "Create_Thread: child failed because " > "PID %d is still in use by DaemonCore\n", > tid ); > num_pid_collisions++; > max_pid_retry = param_integer( "MAX_PID_COLLISION_RETRY", > DEFAULT_MAX_PID_COLLISIONS ); > if( num_pid_collisions > max_pid_retry ) { > dprintf( (1<<0), "Create_Thread: ERROR: we've had " > "%d consecutive pid collisions, giving up! " > "(%d PIDs being tracked internally.)\n", > num_pid_collisions, pidTable->getNumElements() ); > num_pid_collisions = 0; > return 0; > } > > > > dprintf( (1<<0), "Re-trying Create_Thread() to avoid " > "PID re-use\n" ); > return Create_Thread( start_func, arg, sock, reaper_id ); > } > } else { > dprintf( (1<<0), "Create_Thread: fork() failed: %s (%d)\n", > strerror((*__errno_location ())), (*__errno_location ()) ); > num_pid_collisions = 0; > close( errorpipe[0] ); > close( errorpipe[1] ); > return 0; > } > > num_pid_collisions = 0; > if (arg) free(arg); > > > dprintf((1<<18),"Create_Thread: created new thread, tid=%d\n",tid); > > > > > > > PidEntry *pidtmp = new PidEntry; > pidtmp->new_process_group = 0; > pidtmp->sinful_string[0] = '\0'; > pidtmp->is_local = 1; > pidtmp->parent_is_local = 1; > pidtmp->reaper_id = reaper_id; > pidtmp->hung_tid = -1; > pidtmp->was_not_responding = 0; ># 7090 "daemon_core.C" > pidtmp->pid = tid; > > int insert_result = pidTable->insert(tid,pidtmp); > ((insert_result == 0) ? static_cast<void> (0) : __assert_fail ("insert_result == 0", "daemon_core.C", 7093, __PRETTY_FUNCTION__)); > > > > return tid; >} > >int >DaemonCore::Kill_Thread(int tid) >{ > dprintf((1<<18),"called DaemonCore::Kill_Thread(%d)\n", tid); ># 7115 "daemon_core.C" > priv_state priv = _set_priv(PRIV_ROOT, "daemon_core.C", 7115, 1); > int status = kill(tid, 9); > _set_priv(priv, "daemon_core.C", 7117, 1); > return (status >= 0); > >} > >int >DaemonCore::Get_Family_Usage(pid_t pid, ProcFamilyUsage& usage, bool full) >{ > if( !(m_proc_family != __null) ) { _EXCEPT_Line = 7125; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_proc_family != __null"); }; > return m_proc_family->get_usage(pid, usage, full); >} > >int >DaemonCore::Suspend_Family(pid_t pid) >{ > if( !(m_proc_family != __null) ) { _EXCEPT_Line = 7132; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_proc_family != __null"); }; > return m_proc_family->suspend_family(pid); >} > >int >DaemonCore::Continue_Family(pid_t pid) >{ > if( !(m_proc_family != __null) ) { _EXCEPT_Line = 7139; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_proc_family != __null"); }; > return m_proc_family->continue_family(pid); >} > >int >DaemonCore::Kill_Family(pid_t pid) >{ > if( !(m_proc_family != __null) ) { _EXCEPT_Line = 7146; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_proc_family != __null"); }; > return m_proc_family->kill_family(pid); >} > >void >DaemonCore::Proc_Family_Init() >{ > if (m_proc_family == __null) { > m_proc_family = ProcFamilyInterface::create(mySubSystem); > if( !(m_proc_family) ) { _EXCEPT_Line = 7155; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_proc_family"); }; > } >} > >void >DaemonCore::Proc_Family_Cleanup() >{ > if (m_proc_family) { > delete m_proc_family; > m_proc_family = __null; > } >} > >void >DaemonCore::Inherit( void ) >{ > char *inheritbuf = __null; > int numInheritedSocks = 0; > char *ptmp; ># 7186 "daemon_core.C" > const char *envName = EnvGetName( ENV_INHERIT ); > const char *tmp = GetEnv( envName ); > if ( tmp != __null ) { > inheritbuf = strdup( tmp ); > dprintf ( (1<<18), "%s: \"%s\"\n", envName, inheritbuf ); > UnsetEnv( envName ); > } else { > inheritbuf = strdup( "" ); > dprintf ( (1<<18), "%s: is NULL\n", envName ); > } > > if ( (ptmp=strtok(inheritbuf," ")) != __null ) { > > > > dprintf((1<<18),"Parent PID = %s\n",ptmp); > ppid = atoi(ptmp); > PidEntry *pidtmp = new PidEntry; > pidtmp->pid = ppid; > ptmp=strtok(__null," "); > dprintf((1<<18),"Parent Command Sock = %s\n",ptmp); > strcpy(pidtmp->sinful_string,ptmp); > pidtmp->is_local = 1; > pidtmp->parent_is_local = 1; > pidtmp->reaper_id = 0; > pidtmp->hung_tid = -1; > pidtmp->was_not_responding = 0; ># 7245 "daemon_core.C" > int insert_result = pidTable->insert(ppid,pidtmp); > ((insert_result == 0) ? static_cast<void> (0) : __assert_fail ("insert_result == 0", "daemon_core.C", 7246, __PRETTY_FUNCTION__)); ># 7255 "daemon_core.C" > ptmp=strtok(__null," "); > while ( ptmp && (*ptmp != '0') ) { > if (numInheritedSocks >= MAX_SOCKS_INHERITED) { > _EXCEPT_Line = 7258; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("MAX_SOCKS_INHERITED reached."); > } > switch ( *ptmp ) { > case '1' : > > dc_rsock = new ReliSock(); > ptmp=strtok(__null," "); > dc_rsock->serialize(ptmp); > dc_rsock->set_inheritable(0); > dprintf((1<<18),"Inherited a ReliSock\n"); > > inheritedSocks[numInheritedSocks++] = (Stream *)dc_rsock; > break; > case '2': > dc_ssock = new SafeSock(); > ptmp=strtok(__null," "); > dc_ssock->serialize(ptmp); > dc_ssock->set_inheritable(0); > dprintf((1<<18),"Inherited a SafeSock\n"); > > inheritedSocks[numInheritedSocks++] = (Stream *)dc_ssock; > break; > default: > _EXCEPT_Line = 7281; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Daemoncore: Can only inherit SafeSock or ReliSocks"); > break; > } > ptmp=strtok(__null," "); > } > inheritedSocks[numInheritedSocks] = __null; > > > > > dc_rsock = __null; > dc_ssock = __null; > ptmp=strtok(__null," "); > if ( ptmp && (strcmp(ptmp,"0") != 0) ) { > dprintf((1<<18),"Inheriting Command Sockets\n"); > dc_rsock = new ReliSock(); > ((ReliSock *)dc_rsock)->serialize(ptmp); > dc_rsock->set_inheritable(0); > } > ptmp=strtok(__null," "); > if ( ptmp && (strcmp(ptmp,"0") != 0) ) { > dc_ssock = new SafeSock(); > dc_ssock->serialize(ptmp); > dc_ssock->set_inheritable(0); > } > > } > > if ( inheritbuf != __null ) { > free( inheritbuf ); > } >} > > >void >DaemonCore::InitDCCommandSocket( int command_port ) >{ > if( command_port == 0 ) { > > dprintf( (1<<0), "DaemonCore: No command port requested.\n" ); > return; > } > > dprintf( (1<<18), "Setting up command socket\n" ); > > > Inherit(); > > > > if( dc_rsock == __null || (m_wants_dc_udp && dc_ssock == __null) ) { > dc_rsock = new ReliSock; > if( !dc_rsock ) { > _EXCEPT_Line = 7334; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_( "Unable to create command Relisock" ); > } > if (m_wants_dc_udp) { > dc_ssock = new SafeSock; > if( !dc_ssock ) { > _EXCEPT_Line = 7339; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_( "Unable to create command SafeSock" ); > } > } > else { > if( !(dc_ssock == __null) ) { _EXCEPT_Line = 7343; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","dc_ssock == __null"); }; > } > > InitCommandSockets(command_port, dc_rsock, dc_ssock, true); > } > > > > > if( strcmp(mySubSystem,"COLLECTOR") == 0 ) { > int desired_size; > > > MyString msg = "Reset OS socket buffer size to "; > > if (dc_ssock) { > > > desired_size = param_integer("COLLECTOR_SOCKET_BUFSIZE", > 10000 * 1024, 1024); > int final_udp = dc_ssock->set_os_buffers(desired_size); > msg += (int)(final_udp / 1024); > msg += "k (UDP), "; > } > > > > desired_size = param_integer("COLLECTOR_TCP_SOCKET_BUFSIZE", > 128 * 1024, 1024 ); > int final_tcp = dc_rsock->set_os_buffers( desired_size, true ); > > msg += (int)(final_tcp / 1024); > msg += "k (TCP)"; > dprintf((1<<10), "%s\n", msg.Value()); > } ># 7401 "daemon_core.C" > Register_Command_Socket( (Stream*)dc_rsock ); > if (dc_ssock) { > Register_Command_Socket( (Stream*)dc_ssock ); > } > dprintf( (1<<0),"DaemonCore: Command Socket at %s\n", > InfoCommandSinfulString() ); > if (!dc_ssock) { > dprintf( (1<<10), "DaemonCore: UDP Command socket not created.\n"); > } > > > > > > const unsigned int my_ip = dc_rsock->get_ip_int(); > const unsigned int loopback_ip = (__extension__ ({ register unsigned int __v, __x = (inet_addr( "127.0.0.1" )); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("bswap %0" : "=r" (__v) : "0" (__x)); __v; })); > > if( my_ip == loopback_ip ) { > dprintf( (1<<0), "WARNING: Condor is running on the loopback address (127.0.0.1)\n" ); > dprintf( (1<<0), " of this machine, and is not visible to other hosts!\n" ); > dprintf( (1<<0), " This may be due to a misconfigured /etc/hosts file.\n" ); > dprintf( (1<<0), " Please make sure your hostname is not listed on the\n" ); > dprintf( (1<<0), " same line as localhost in /etc/hosts.\n" ); > } > > > > drop_addr_file(); > > > > > daemonCore->Register_Command( (60000 +0), "DC_RAISESIGNAL", > (CommandHandlercpp)&DaemonCore::HandleSigCommand, > "HandleSigCommand()", daemonCore, IMMEDIATE_FAMILY ); > > > daemonCore->Register_Command( (60000 +1),"DC_PROCESSEXIT", > (CommandHandlercpp)&DaemonCore::HandleProcessExitCommand, > "HandleProcessExitCommand()", daemonCore, IMMEDIATE_FAMILY ); > > > > daemonCore->Register_Command( (60000 +8),"DC_CHILDALIVE", > (CommandHandlercpp)&DaemonCore::HandleChildAliveCommand, > "HandleChildAliveCommand", daemonCore, IMMEDIATE_FAMILY, > (1<<10) ); >} > > > >int >DaemonCore::HandleDC_SIGCHLD(int sig) >{ > > > > > pid_t pid; > int status; > WaitpidEntry wait_entry; > bool first_time = true; > > > ((sig == 17) ? static_cast<void> (0) : __assert_fail ("sig == 17", "daemon_core.C", 7465, __PRETTY_FUNCTION__)); > > for(;;) { > (*__errno_location ()) = 0; > if( (pid = waitpid(-1,&status,1)) <= 0 ) { > if( (*__errno_location ()) == 4 ) { > > > > > > > continue; > } > > if( (*__errno_location ()) == 10 || (*__errno_location ()) == 11 || (*__errno_location ()) == 0 ) { > dprintf( (1<<10), > "DaemonCore: No more children processes to reap.\n" ); > } else { > > dprintf( (1<<0), "waitpid() returned %d, errno = %d\n", > pid, (*__errno_location ()) ); > } > break; > } > > if( (((signed char) ((((*(__const int *) &(status))) & 0x7f) + 1) >> 1) > 0) && (((*(__const int *) &(status))) & 0x7f) == 5 ) { > > > > > > dprintf( (1<<10), "received SIGCHLD from stopped TDP process\n"); > continue; > } > > > > wait_entry.child_pid = pid; > wait_entry.exit_status = status; > WaitpidQueue.enqueue(wait_entry); > if (first_time) { > Send_Signal( mypid, (60000 +9) ); > first_time = false; > } > > } > > return 1; >} > > >int >DaemonCore::HandleDC_SERVICEWAITPIDS(int) >{ > WaitpidEntry wait_entry; > > if ( WaitpidQueue.dequeue(wait_entry) < 0 ) { > > return 1; > } > > > HandleProcessExit(wait_entry.child_pid, wait_entry.exit_status); > > > > > if ( !WaitpidQueue.IsEmpty() ) { > Send_Signal( mypid, (60000 +9) ); > } > > return 1; >} ># 7817 "daemon_core.C" >int DaemonCore::HandleProcessExitCommand(int command, Stream* stream) >{ > unsigned int pid; > int result = 1; > > ((command == (60000 +1)) ? static_cast<void> (0) : __assert_fail ("command == (60000+1)", "daemon_core.C", 7822, __PRETTY_FUNCTION__)); > > > > > if (!stream->code(pid)) > result = 0; > > > if ( !stream->end_of_message() ) > result = 0; > > if ( result == 0 ) > return 0; > > > return( HandleProcessExit(pid,0) ); >} > >void >DaemonCore::CallReaper(int reaper_id, char const *whatexited, pid_t pid, int exit_status) >{ > ReapEnt *reaper = __null; > > if( reaper_id > 0 ) { > reaper = &(reapTable[reaper_id-1]); > } > if( !reaper || !(reaper->handler || reaper->handlercpp) ) { > > dprintf((1<<18), > "DaemonCore: %s %lu exited with status %d; no registered reaper\n", > whatexited, (unsigned long)pid, exit_status); > return; > } > > > curr_dataptr = &(reaper->data_ptr); > > > char *hdescrip = reaper->handler_descrip; > if ( !hdescrip ) { > hdescrip = EMPTY_DESCRIP; > } > dprintf((1<<19), > "DaemonCore: %s %lu exited with status %d, invoking reaper " > "%d <%s>\n", > whatexited, (unsigned long)pid, exit_status, reaper_id, hdescrip); > > if ( reaper->handler ) { > > (*(reaper->handler))(reaper->service,pid,exit_status); > } > else if ( reaper->handlercpp ) { > > (reaper->service->*(reaper->handlercpp))(pid,exit_status); > } > > dprintf((1<<19), > "DaemonCore: return from reaper for pid %lu\n", (unsigned long)pid); > > > CheckPrivState(); > > > curr_dataptr = __null; >} > > > > >int DaemonCore::HandleProcessExit(pid_t pid, int exit_status) >{ > PidEntry* pidentry; > const char *whatexited = "pid"; > > > if ( pidTable->lookup(pid,pidentry) == -1 ) { > > if( defaultReaper!=-1 ) { > pidentry = new PidEntry; > if( !(pidentry) ) { _EXCEPT_Line = 7902; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","pidentry"); }; > pidentry->parent_is_local = 1; > pidentry->reaper_id = defaultReaper; > pidentry->hung_tid = -1; > pidentry->new_process_group = 0; > } else { > > > > > dprintf((1<<18), > "Unknown process exited (popen?) - pid=%d\n",pid); > return 0; > } > } > > > clearSession(pid); ># 7958 "daemon_core.C" > if ( pidentry->parent_is_local ) { > CallReaper( pidentry->reaper_id, whatexited, pid, exit_status ); > } else { > > > } > > > > > if (pidentry->new_process_group == 1) { > if( !(m_proc_family != __null) ) { _EXCEPT_Line = 7969; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_proc_family != __null"); }; > if (!m_proc_family->unregister_family(pid)) { > dprintf((1<<0), > "error unregistering pid %u with the procd\n", > pid); > } > } > > > > pidTable->remove(pid); ># 7989 "daemon_core.C" > if ( pidentry->hung_tid != -1 ) { > Cancel_Timer(pidentry->hung_tid); > } > > delete pidentry; > > > > > if (pid == ppid) { > dprintf((1<<0), > "Our Parent process (pid %lu) exited; shutting down\n", > (unsigned long)pid); > Send_Signal(mypid,15); > } > > return 1; >} > >const char* DaemonCore::GetExceptionString(int sig) >{ > static char exception_string[80]; > > > > > > if ( sig > 64 ) { > sig = (((*(__const int *) &(sig))) & 0x7f); > } > > sprintf(exception_string,"signal %d (%s)",sig,strsignal(sig)); > > > > > > return exception_string; >} > > >int DaemonCore::HandleChildAliveCommand(int, Stream* stream) >{ > pid_t child_pid; > unsigned int timeout_secs; > PidEntry *pidentry; > int ret_value; > > if (!stream->code(child_pid) || > !stream->code(timeout_secs) || > !stream->end_of_message()) { > dprintf((1<<0),"Failed to read ChildAlive packet\n"); > return 0; > } > > if ((pidTable->lookup(child_pid, pidentry) < 0)) { > > dprintf((1<<0), > "Received child alive command from unknown pid %d\n",child_pid); > return 0; > } > > if ( pidentry->hung_tid != -1 ) { > ret_value = daemonCore->Reset_Timer( pidentry->hung_tid, timeout_secs ); > if( !(ret_value != -1) ) { _EXCEPT_Line = 8053; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","ret_value != -1"); }; > } else { > pidentry->hung_tid = > Register_Timer(timeout_secs, > (Eventcpp) &DaemonCore::HungChildTimeout, > "DaemonCore::HungChildTimeout", this); > if( !(pidentry->hung_tid != -1) ) { _EXCEPT_Line = 8059; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","pidentry->hung_tid != -1"); }; > > Register_DataPtr( &pidentry->pid); > } > > pidentry->was_not_responding = 0; > > dprintf((1<<18), > "received childalive, pid=%d, secs=%d\n",child_pid,timeout_secs); > > return 1; > >} > >int DaemonCore::HungChildTimeout() >{ > pid_t hung_child_pid; > pid_t *hung_child_pid_ptr; > PidEntry *pidentry; > > > hung_child_pid_ptr = (pid_t*)GetDataPtr(); > hung_child_pid = *hung_child_pid_ptr; > > if ((pidTable->lookup(hung_child_pid, pidentry) < 0)) { > > return 0; > } > > > > pidentry->hung_tid = -1; > > WaitpidEntry wp; > wp.child_pid = hung_child_pid; > if( WaitpidQueue.IsMember( wp ) ) { > > > dprintf((1<<10),"Canceling hung child timer for pid %d, because it has exited but has not been reaped yet.\n",hung_child_pid); > return 0; > } > > > > pidentry->was_not_responding = 1; ># 8114 "daemon_core.C" > ServiceCommandSocket(); > > > > > if ((pidTable->lookup(hung_child_pid, pidentry) < 0)) { > > return 0; > } > > > if ( pidentry->was_not_responding == 0 ) { > > return 0; > } > > dprintf((1<<0),"ERROR: Child pid %d appears hung! Killing it hard.\n", > hung_child_pid); > > > Shutdown_Fast(hung_child_pid); > > return 1; >} > >int DaemonCore::Was_Not_Responding(pid_t pid) >{ > PidEntry *pidentry; > > if ((pidTable->lookup(pid, pidentry) < 0)) { > > > return 0; > } > > return pidentry->was_not_responding; >} > > >int DaemonCore::SendAliveToParent() >{ > char parent_sinful_string[30]; > char *tmp; > int ret_val; > static bool first_time = true; > int number_of_tries; > > dprintf((1<<10),"DaemonCore: in SendAliveToParent()\n"); > > if ( !ppid ) { > > return 0; > } > > > > > > > > if ( !Is_Pid_Alive(ppid) ) { > dprintf((1<<10), > "DaemonCore: in SendAliveToParent() - ppid %ul disappeared!\n", > ppid); > return 0; > } > > tmp = InfoCommandSinfulString(ppid); > if ( tmp ) { > > > strcpy(parent_sinful_string,tmp); > } else { > dprintf((1<<10),"DaemonCore: No parent_sinful_string. " > "SendAliveToParent() failed.\n"); > > return 0; > } > > > > > > > > if ( strcmp(mySubSystem,"STARTER")==0 && > param_boolean("GLEXEC_STARTER",false) ) > { > first_time = false; > } > > > if ( first_time ) { > number_of_tries = 3; > } else { > number_of_tries = 1; > } > > for (;;) { > Sock* sock; > SafeSock ssock; > ReliSock rsock; > if (m_wants_dc_udp) { > sock = &ssock; > } > else { > sock = &rsock; > if (first_time) { > dprintf((1<<10), "DaemonCore::SendAliveToParent(): " > "Using TCP to connect to parent %s.\n", > parent_sinful_string); > } > } > ret_val = 1; > > if (!sock->connect(parent_sinful_string)) { > dprintf((1<<0),"DaemonCore: Could not connect to parent %s. " > "SendAliveToParent() failed.\n",parent_sinful_string); > ret_val = 0; > } > > if( ret_val == 1 ) { > Daemon d( DT_ANY, parent_sinful_string ); > if (!d.startCommand((60000 +8), sock, 0)) { > dprintf((1<<10),"DaemonCore: startCommand() to %s failed. " > "SendAliveToParent() failed.\n",parent_sinful_string); > ret_val = 0; > } > } > > if( ret_val == 1 ) { > sock->encode(); > if ( !sock->code(mypid) || !sock->code(max_hang_time) > || !sock->end_of_message()) > { > dprintf((1<<10),"DaemonCore: Could not write to parent %s. " > "SendAliveToParent() failed.\n",parent_sinful_string); > ret_val = 0; > } > } > > number_of_tries--; > if ( number_of_tries == 0 || ret_val == 1 ) { > break; > } > > dprintf((1<<0),"Failed to send alive to %s, will try again...\n", > parent_sinful_string); > sleep(5); > } > > if ( first_time ) { > first_time = false; > if ( ret_val == 0 ) { > _EXCEPT_Line = 8268; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("FAILED TO SEND INITIAL KEEP ALIVE TO OUR PARENT %s", > parent_sinful_string); > } > } > > if (ret_val == 0) { > dprintf((1<<0),"DaemonCore: Leaving SendAliveToParent() - " > "FAILED sending to %s\n", > parent_sinful_string); > } else { > dprintf((1<<10),"DaemonCore: Leaving SendAliveToParent() - success\n"); > } > > return ret_val; >} > > >char **DaemonCore::ParseArgsString(const char *str) >{ > char separator1, separator2; > int maxlength; > char **argv, *arg; > int nargs=0; > > separator1 = ' '; > separator2 = '\t'; > > > > > > > > maxlength = strlen(str)+1; > > argv = new char*[maxlength]; > > > while(*str) { > > while( *str == separator1 || *str == separator2 ) { > str++; > } > > > if(*str) { > > > argv[nargs] = new char[maxlength]; > > > arg = argv[nargs]; > while( *str && *str != separator1 && *str != separator2 ) { > *arg++ = *str++; > } > *arg = 0; > > > nargs++; > } > } > > argv[nargs] = 0; > return argv; >} > > >int >BindAnyCommandPort(ReliSock *rsock, SafeSock *ssock) >{ > for(int i = 0; i < 1000; i++) { > > if ( !rsock->bind(0) ) { > dprintf((1<<0), "Failed to bind to command ReliSock\n"); > > > dprintf((1<<0), "(Make sure your IP address is correct in /etc/hosts.)\n"); > > > > > > return 0; > } > > > > if (ssock && !ssock->bind(0, rsock->get_port())) { > rsock->close(); > continue; > } > return 1; > } > dprintf((1<<0), "Error: BindAnyCommandPort failed!\n"); > return 0; >} > >bool >InitCommandSockets(int port, ReliSock *rsock, SafeSock *ssock, bool fatal) >{ ># 8380 "daemon_core.C" > if( !(port != 0) ) { _EXCEPT_Line = 8380; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","port != 0"); }; > if (port <= 1) { > > if( !BindAnyCommandPort(rsock, ssock) ) { > if (fatal) { > _EXCEPT_Line = 8385; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("BindAnyCommandPort() failed"); > } > else { > dprintf((1<<0) | (1<<27), "BindAnyCommandPort() failed\n"); > return false; > } > > } > if( !rsock->listen() ) { > if (fatal) { > _EXCEPT_Line = 8395; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_( "Failed to post listen on command ReliSock" ); > } > else { > dprintf((1<<0) | (1<<27), > "Failed to post listen on command ReliSock\n"); > return false; > } > } > } > else { > > int on = 1; > > > > > > if( !rsock->setsockopt(1, 2, > (char*)&on, sizeof(on)) ) { > if (fatal) { > _EXCEPT_Line = 8415; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("setsockopt() SO_REUSEADDR failed on TCP command port"); > } > else { > dprintf((1<<0) | (1<<27), > "setsockopt() SO_REUSEADDR failed on TCP command port\n"); > return false; > } > } > if( ssock && > !ssock->setsockopt(1, 2, > (char*)&on, sizeof(on)) ) { > if (fatal) { > _EXCEPT_Line = 8427; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("setsockopt() SO_REUSEADDR failed on UDP command port"); > } > else { > dprintf((1<<0) | (1<<27), > "setsockopt() SO_REUSEADDR failed on UDP command port\n"); > return false; > } > } > > > > > > if( !rsock->setsockopt(IPPROTO_TCP, 1, > (char*)&on, sizeof(on)) ) { > dprintf((1<<0), "Warning: setsockopt() TCP_NODELAY failed\n"); > } > > if (!rsock->listen(port)) { > if (fatal) { > _EXCEPT_Line = 8447; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Failed to listen(%d) on TCP command socket.", port); > } > else { > dprintf((1<<0) | (1<<27), > "Failed to listen(%d) on TCP command socket.\n", port); > return false; > } > } > > if (ssock && !ssock->bind(0, port)) { > if (fatal) { > _EXCEPT_Line = 8458; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Failed to bind(%d) on UDP command socket.", port); > } > else { > dprintf((1<<0) | (1<<27), > "Failed to bind(%d) on UDP command socket.\n", port); > return false; > } > } > } > return true; >} ># 8478 "daemon_core.C" >int DaemonCore::Is_Pid_Alive(pid_t pid) >{ > int status = 0; > > > > > > > > WaitpidEntry wait_entry; > wait_entry.child_pid = pid; > > if(WaitpidQueue.IsMember(wait_entry)) { > status = 1; > return status; > } > > > > > > priv_state priv = _set_priv(PRIV_ROOT, "daemon_core.C", 8500, 1); > > (*__errno_location ()) = 0; > if ( ::kill(pid,0) == 0 ) { > status = 1; > } else { > > > > > > if ( (*__errno_location ()) == 1 ) { > dprintf((1<<10), "DaemonCore::IsPidAlive(): kill returned " > "EPERM, assuming pid %d is alive.\n", pid); > status = 1; > } else { > dprintf((1<<10), "DaemonCore::IsPidAlive(): kill returned " > "errno %d, assuming pid %d is dead.\n", (*__errno_location ()), pid); > status = 0; > } > } > _set_priv(priv, "daemon_core.C", 8521, 1); ># 8548 "daemon_core.C" > return status; >} > > >priv_state >DaemonCore::Register_Priv_State( priv_state priv ) >{ > priv_state old_priv = Default_Priv_State; > Default_Priv_State = priv; > return old_priv; >} > >bool >DaemonCore::CheckConfigSecurity( const char* config, Sock* sock ) >{ > > > > StringList all_attrs (config, "\n"); > > > > bool all_attrs_okay = true; > > char *single_attr; > all_attrs.rewind(); > > > > while (all_attrs_okay && (single_attr = all_attrs.next())) { > > if (!CheckConfigAttrSecurity(single_attr, sock)) { > all_attrs_okay = false; > } > } > > return all_attrs_okay; >} > > > >bool >DaemonCore::CheckConfigAttrSecurity( const char* attr, Sock* sock ) >{ > char *name, *tmp; > const char* ip_str; > int i; > > if( ! (name = strdup(attr)) ) { > _EXCEPT_Line = 8597; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_( "Out of memory!" ); > } > tmp = strchr( name, '=' ); > if( ! tmp ) { > tmp = strchr( name, ':' ); > } > if( tmp ) { > > > > *tmp = ' '; > while( isspace(*tmp) ) { > *tmp = '\0'; > tmp--; > } > } ># 8624 "daemon_core.C" > for( i=0; i<LAST_PERM; i++ ) { > > > if( i == ALLOW || i == IMMEDIATE_FAMILY ) { > continue; > } > > if( ! SettableAttrsLists[i] ) { > > continue; > } > > > > > > > if( Verify((DCpermission)i, sock->endpoint(), sock->getFullyQualifiedUser())) { > > > if( (SettableAttrsLists[i])-> > contains_anycase_withwildcard(name) ) { ># 8654 "daemon_core.C" > free( name ); > return true; > } > } > } > > > > > > > > ip_str = sock->endpoint_ip_str(); > > strupr(name); > > > dprintf( (1<<0), > "WARNING: Someone at %s is trying to modify \"%s\"\n", > ip_str, name ); > dprintf( (1<<0), > "WARNING: Potential security problem, request refused\n" ); > > free( name ); > return false; >} > > >void >DaemonCore::InitSettableAttrsLists( void ) >{ > int i; > > > for( i=0; i<LAST_PERM; i++ ) { > if( SettableAttrsLists[i] ) { > delete SettableAttrsLists[i]; > SettableAttrsLists[i] = __null; > } > } > > > > > > for( i=0; i<LAST_PERM; i++ ) { > > if( i == ALLOW || i == IMMEDIATE_FAMILY ) { > continue; > } > if( InitSettableAttrsList(mySubSystem, i) ) { > > continue; > } > > > > InitSettableAttrsList( __null, i ); > } ># 8726 "daemon_core.C" >} > > >bool >DaemonCore::InitSettableAttrsList( const char* subsys, int i ) >{ > MyString param_name; > char* tmp; > > if( subsys ) { > param_name = subsys; > param_name += "_SETTABLE_ATTRS_"; > } else { > param_name = "SETTABLE_ATTRS_"; > } > param_name += PermString((DCpermission)i); > tmp = param( param_name.Value() ); > if( tmp ) { > SettableAttrsLists[i] = new StringList; > (SettableAttrsLists[i])->initializeFromString( tmp ); > free( tmp ); > return true; > } > return false; >} > > >KeyCache* >DaemonCore::getKeyCache() { > return sec_man->session_cache; >} > >SecMan* DaemonCore :: getSecMan() >{ > return sec_man; >} > >void DaemonCore :: clearSession(pid_t pid) >{ > > > > if(sec_man) { > sec_man->invalidateByParentAndPid(sec_man->my_unique_id(), pid); > } > > > PidEntry * pidentry = __null; > > if ( pidTable->lookup(pid,pidentry) != -1 ) { > if (sec_man && pidentry) { > sec_man->invalidateHost(pidentry->sinful_string); > } > } >} > >void DaemonCore :: invalidateSessionCache() >{ > > return; > > if (sec_man) { > sec_man->invalidateAllCache(); > } >} > > >bool DaemonCore :: set_cookie( int len, unsigned char* data ) { > if (_cookie_data) { > > > > if ( _cookie_data_old ) { > free(_cookie_data_old); > } > _cookie_data_old = _cookie_data; > _cookie_len_old = _cookie_len; > > > _cookie_data = __null; > _cookie_len = 0; > } > > if (data) { > _cookie_data = (unsigned char*) malloc (len); > if (!_cookie_data) { > > return false; > } > _cookie_len = len; > memcpy (_cookie_data, data, len); > } > > return true; >} > >bool DaemonCore :: get_cookie( int &len, unsigned char* &data ) { > if (data != __null) { > return false; > } > data = (unsigned char*) malloc (_cookie_len); > if (!data) { > > return false; > } > > len = _cookie_len; > memcpy (data, _cookie_data, _cookie_len); > > return true; >} > >bool DaemonCore :: cookie_is_valid( unsigned char* data ) { > > if ( data == __null || _cookie_data == __null ) { > return false; > } > > if ( strcmp((char*)_cookie_data, (char*)data) == 0 ) { > > return true; > } else if ( _cookie_data_old != __null ) { > > > > > > if ( strcmp((char*)_cookie_data_old, (char*)data) == 0 ) { > return true; > } else { > > > return false; > } > } > return false; >} > >bool >DaemonCore::GetPeacefulShutdown() { > return peaceful_shutdown; >} > >void >DaemonCore::SetPeacefulShutdown(bool value) { > peaceful_shutdown = value; >} > >void >DaemonCore::RegisterTimeSkipCallback(TimeSkipFunc fnc, void * data) >{ > TimeSkipWatcher * watcher = new TimeSkipWatcher; > if( !(fnc) ) { _EXCEPT_Line = 8878; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","fnc"); }; > watcher->fn = fnc; > watcher->data = data; > if( ! m_TimeSkipWatchers.Append(watcher)) { > _EXCEPT_Line = 8882; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Unable to register time skip callback. Possible out of memory condition."); > } >} > >void >DaemonCore::UnregisterTimeSkipCallback(TimeSkipFunc fnc, void * data) >{ > m_TimeSkipWatchers.Rewind(); > TimeSkipWatcher * p; > while( (p = m_TimeSkipWatchers.Next()) ) { > if(p->fn == fnc && p->data == data) { > m_TimeSkipWatchers.DeleteCurrent(); > return; > } > } > _EXCEPT_Line = 8897; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Attempted to remove time skip watcher (%p, %p), but it was not registered", fnc, data); >} > >void >DaemonCore::CheckForTimeSkip(time_t time_before, time_t okay_delta) >{ > if(m_TimeSkipWatchers.Number() == 0) { > > return; > } > > > > time_t time_after = time(__null); > int delta = 0; > > > > > > if((time_after + MAX_TIME_SKIP) < time_before) { > > > > > > > delta = -(int)(time_before - time_after); > } > if((time_before + okay_delta*2 + MAX_TIME_SKIP) < time_after) { > > > > > > > delta = time_after - time_before - okay_delta; > } > if(delta == 0) { > > return; > } > dprintf((1<<10), "Time skip noticed. The system clock jumped approximately %d seconds.\n", delta); > > > m_TimeSkipWatchers.Rewind(); > TimeSkipWatcher * p; > while( (p = m_TimeSkipWatchers.Next()) ) { > if( !(p->fn) ) { _EXCEPT_Line = 8945; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","p->fn"); }; > p->fn(p->data, delta); > } >} > > >void >DaemonCore::UpdateLocalAd(ClassAd *daemonAd) >{ > FILE *AD_FILE; > char localAd_path[100]; > > sprintf( localAd_path, "%s_DAEMON_AD_FILE", mySubSystem ); > > > if( localAdFile ) { > free( localAdFile ); > } > localAdFile = param( localAd_path ); > > if( localAdFile ) { > if( (AD_FILE = safe_fopen_wrapper(localAdFile, "w")) ) { > daemonAd->fPrint(AD_FILE); > fclose( AD_FILE ); > } else { > dprintf( (1<<0), > "DaemonCore: ERROR: Can't open daemon address file %s\n", > localAdFile ); > } > } >} > > >void >DaemonCore::publish(ClassAd *ad) { > const char* tmp; > > > > config_fill_ad(ad); > > > ad->Assign(ATTR_MY_CURRENT_TIME, (int)time(__null)); > > > ad->Assign(ATTR_MACHINE, my_full_hostname()); > > > tmp = privateNetworkName(); > if (tmp) { > ad->Assign(ATTR_PRIVATE_NETWORK_NAME, tmp); > tmp = privateNetworkIpAddr(); > if( !(tmp) ) { _EXCEPT_Line = 8997; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","tmp"); }; > ad->Assign(ATTR_PRIVATE_NETWORK_IP_ADDR, tmp); > } > tmp = publicNetworkIpAddr(); > if( !(tmp) ) { _EXCEPT_Line = 9001; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","tmp"); }; > ad->Assign(ATTR_PUBLIC_NETWORK_IP_ADDR, tmp); >} > > >void >DaemonCore::initCollectorList() { > if (m_collector_list) { > delete m_collector_list; > } > m_collector_list = CollectorList::create(); >} > > >CollectorList* >DaemonCore::getCollectorList() { > return m_collector_list; >} > > >int >DaemonCore::sendUpdates( int cmd, ClassAd* ad1, ClassAd* ad2, bool nonblock ) >{ > if( !(ad1) ) { _EXCEPT_Line = 9024; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","ad1"); }; > if( !(m_collector_list) ) { _EXCEPT_Line = 9025; _EXCEPT_File = "daemon_core.C"; _EXCEPT_Errno = (*__errno_location ()); _EXCEPT_("Assertion ERROR on (%s)","m_collector_list"); }; > > > if (!m_in_daemon_shutdown_fast && > evalExpr(ad1, "DAEMON_SHUTDOWN_FAST", ATTR_DAEMON_SHUTDOWN_FAST, > "starting fast shutdown")) { > > m_wants_restart = false; > m_in_daemon_shutdown_fast = true; > daemonCore->Send_Signal( daemonCore->getpid(), 3 ); > } > else if (!m_in_daemon_shutdown && > evalExpr(ad1, "DAEMON_SHUTDOWN", ATTR_DAEMON_SHUTDOWN, > "starting graceful shutdown")) { > m_wants_restart = false; > m_in_daemon_shutdown = true; > daemonCore->Send_Signal( daemonCore->getpid(), 15 ); > } > > > > return m_collector_list->sendUpdates(cmd, ad1, ad2, nonblock); >} > > >bool >DaemonCore::wantsRestart() >{ > return m_wants_restart; >} > > >bool >DaemonCore::evalExpr( ClassAd* ad, const char* param_name, > const char* attr_name, const char* message ) >{ > bool value = false; > char* expr = param(param_name); > if (!expr) { > expr = param(attr_name); > } > if (expr) { > if (!ad->AssignExpr(attr_name, expr)) { > dprintf( (1<<0)|(1<<27), > "ERROR: Failed to parse %s expression \"%s\"\n", > attr_name, expr ); > free(expr); > return false; > } > int result = 0; > if (ad->EvalBool(attr_name, __null, result) && result) { > dprintf( (1<<0), > "The %s expression \"%s\" evaluated to TRUE: %s\n", > attr_name, expr, message ); > value = true; > } > free(expr); > } > return value; >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 432090
: 294408