I'm seeing some strange behavior with a 64-bit compile of uw-imapd with full ssl support. When compiled in 64-bit, it doesn't seem to use ssl when coming into port 993. If I compile in 32-bit, I can watch the stack trace and see it reference nsswitch.conf, then /etc/services and it knows it's going to be encrypted traffic. However, the 64-bit stack trace completely avoids this check and just uses normal text imap. Any ideas? No errors on compile, only the warnings about integer size from 64-bit. I've tried using both the sun compiler and gcc. Same results either way. I realize this is a long email, I apologize. I have other compiles built from the 64-bit c-client libraries, so I would rather not use a 32-bit imapd.

Solaris 10 on SPARC

32-bit trace:
25375/1:         0.0276  0.0002 close(2)                                        = 0
25375/1:         0.0278  0.0002 open("/etc/c-client.cf", O_RDONLY)              Err#2 ENOENT
25375/1:         0.0280  0.0002 alarm(0)                                        = 0
25375/1:         0.0281  0.0001 getsockname(0, 0x00212210, 0xFFBFF3A4, SOV_DEFAULT) = 0
25375/1:                AF_INET  name = 127.0.0.1  port = 993
25375/1:         0.0286  0.0005 alarm(0)                                        = 0
25375/1:         0.0288  0.0002 brk(0x00215928)                                 = 0
25375/1:         0.0290  0.0002 brk(0x00217928)                                 = 0
25375/1:         0.0292  0.0002 open("/etc/netconfig", O_RDONLY|O_LARGEFILE)    = 2
25375/1:         0.0294  0.0002 brk(0x00217928)                                 = 0
25375/1:         0.0295  0.0001 brk(0x00219928)                                 = 0
25375/1:         0.0297  0.0002 fcntl(2, F_DUPFD, 0x00000100)                   Err#22 EINVAL
25375/1:         0.0299  0.0002 read(2, 0x002178A0, 1024)                       = 1024
.......
25375/1:         0.0798  0.0003 read(2, 0x002178A0, 1024)                       = 0
25375/1:         0.0799  0.0001 close(2)                                        = 0
25375/1:         0.0804  0.0005 open("/dev/udp", O_RDONLY)                      = 2
25375/1:         0.0806  0.0002 ioctl(2, SIOCGLIFNUM, 0xFFBFE8B4)               = 0
                write/read (struct lifnum)
25375/1:         0.0808  0.0002 close(2)                                        = 0
25375/1:         0.0810  0.0002 open("/dev/udp", O_RDONLY)                      = 2
25375/1:         0.0812  0.0002 ioctl(2, SIOCGLIFNUM, 0xFFBFE8B4)               = 0
                write/read (struct lifnum)
25375/1:         0.0813  0.0001 close(2)                                        = 0
25375/1:         0.0816  0.0003 alarm(0)                                        = 0
25375/1:         0.0817  0.0001 alarm(0)                                        = 0
25375/1:         0.0819  0.0002 open("/etc/nsswitch.conf", O_RDONLY|O_LARGEFILE) = 2
25375/1:         0.0821  0.0002 fcntl(2, F_DUPFD, 0x00000100)                   Err#22 EINVAL
25375/1:         0.0823  0.0002 read(2, 0xFF392400, 1024)                       = 1024
......
25375/1:         0.0837  0.0003 read(2, 0xFF392400, 1024)                       = 0
25375/1:         0.0839  0.0002 close(2)                                        = 0
25375/1:         0.0841  0.0002 stat("/lib/nss_files.so.1", 0xFFBFEC40)         = 0
25375/1:            d=0x0154000A i=2239  m=0100755 l=1  u=0     g=2     sz=57408
25375/1:                at = Aug 18 10:50:00 CDT 2006  [ 1155916200 ]
25375/1:                mt = Jan 22 19:44:58 CST 2005  [ 1106444698 ]
25375/1:                ct = Apr 10 17:19:22 CDT 2006  [ 1144707562 ]
25375/1:            bsz=8192  blks=114   fs=ufs
25375/1:         0.0844  0.0003 resolvepath("/lib/nss_files.so.1", "/lib/nss_files.so.1", 1023) = 19
25375/1:         0.0846  0.0002 open("/lib/nss_files.so.1", O_RDONLY)           = 2
25375/1:         0.0848  0.0002 mmap(0x00010000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 2, 0) = 0xFF230000
25375/1:         0.0850  0.0002 mmap(0x00010000, 98304, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF210000
25375/1:         0.0851  0.0001 mmap(0xFF210000, 19050, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 2, 0) = 0xFF210000
25375/1:         0.0853  0.0002 mmap(0xFF226000, 1680, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 2, 24576) = 0xFF226000
25375/1:         0.0855  0.0002 munmap(0xFF216000, 65536)                       = 0
25375/1:         0.0857  0.0002 memcntl(0xFF210000, 5872, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
25375/1:         0.0858  0.0001 close(2)                                        = 0
25375/1:         0.0861  0.0003 munmap(0xFF230000, 8192)                        = 0
25375/1:         0.0863  0.0002 open("/etc/services", O_RDONLY|O_LARGEFILE)     = 2
25375/1:         0.0865  0.0002 brk(0x00219928)                                 = 0
25375/1:         0.0866  0.0001 brk(0x0021B928)                                 = 0
25375/1:         0.0868  0.0002 fcntl(2, F_DUPFD, 0x00000100)                   Err#22 EINVAL
25375/1:         0.0870  0.0002 read(2, 0x00219538, 1024)                       = 1024




64-bit trace:

25417/1:         0.0295  0.0002 close(2)                                        = 0
25417/1:         0.0296  0.0001 open("/etc/c-client.cf", O_RDONLY)              Err#2 ENOENT
25417/1:         0.0301  0.0005 alarm(0)                                        = 0
25417/1:         0.0302  0.0001 getsockname(0, 0x100322D80, 0xFFFFFFFF7FFFEFF8, SOV_DEFAULT) = 0
25417/1:         0.0305  0.0003 sysinfo(SI_HOSTNAME, "ascc2", 1024)             = 6
25417/1:         0.0307  0.0002 alarm(0)                                        = 0
25417/1:         0.0309  0.0002 brk(0x100325310)                                = 0
25417/1:         0.0310  0.0001 brk(0x100329310)                                = 0
25417/1:         0.0313  0.0003 open("/etc/netconfig", O_RDONLY|O_LARGEFILE)    = 2
25417/1:         0.0315  0.0002 fcntl(2, F_DUPFD, 0x00000100)                   Err#22 EINVAL
25417/1:         0.0317  0.0002 read(2, 0x100326024, 1024)                      = 1024
.....
25417/1:         0.0335  0.0002 read(2, 0x100326024, 1024)                      = 0
25417/1:         0.0337  0.0002 close(2)                                        = 0
25417/1:         0.0340  0.0003 open("/dev/udp", O_RDONLY)                      = 2
25417/1:         0.0343  0.0003 ioctl(2, SIOCGLIFNUM, 0xFFFFFFFF7FFFDE94)       = 0
                write/read (struct lifnum)
25417/1:         0.0344  0.0001 close(2)                                        = 0
25417/1:         0.0347  0.0003 open("/dev/udp", O_RDONLY)                      = 2
25417/1:         0.0350  0.0003 ioctl(2, SIOCGLIFNUM, 0xFFFFFFFF7FFFDE94)       = 0
                write/read (struct lifnum)
25417/1:         0.0352  0.0002 close(2)                                        = 0
25417/1:         0.0356  0.0004 open("/var/run/name_service_door", O_RDONLY)    = 2
25417/1:         0.0358  0.0002 dup(2)                                          = 3
25417/1:         0.0359  0.0001 close(2)                                        = 0
25417/1:         0.0360  0.0001 fcntl(3, F_SETFD, 0x00000001)                   = 0
25417/1:         0.0361  0.0001 door_info(3, 0xFFFFFFFF7EBF28A8)                = 0
25417/1:                target=4987 proc=0x13CE0 data="">
25417/1:                attributes=DOOR_UNREF
25417/1:                uniquifier=1079
25417/1:         0.0365  0.0004 door_call(3, 0xFFFFFFFF7FFFBDB8)                = 0
25417/1:                data_ptr=0xFFFFFFFF7FFFBEE8 data_size=141
25417/1:                desc_ptr=0x0 desc_num=0
25417/1:                rbuf=0xFFFFFFFF7FFFBEE8 rsize=8192
25417/1:         0.0367  0.0002 alarm(0)                                        = 0
25417/1:         0.0369  0.0002 alarm(0)                                        = 0
25417/1:         0.0370  0.0001 alarm(0)                                        = 0
25417/1:         0.0371  0.0001 umask(022)                                      = 022

<<< Below here is new data that isn't in the 32-bit. >>>

25417/1:         0.0373  0.0002 sigaction(SIGALRM, 0xFFFFFFFF7FFFEF90, 0xFFFFFFFF7FFFF080) = 0
25417/1:            new: hand = 0xFFFFFFFF7EAC1908 mask = 0xFFBFFEFF 0x0000FFFF 0 0 flags = 0x0004
25417/1:            old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
25417/1:         0.0376  0.0003 sigaction(SIGUSR2, 0xFFFFFFFF7FFFEF90, 0xFFFFFFFF7FFFF080) = 0
25417/1:            new: hand = 0xFFFFFFFF7EAC1908 mask = 0xFFBFFEFF 0x0000FFFF 0 0 flags = 0x0004
25417/1:            old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
25417/1:         0.0378  0.0002 sigaction(SIGHUP, 0xFFFFFFFF7FFFEF90, 0xFFFFFFFF7FFFF080) = 0
25417/1:            new: hand = 0xFFFFFFFF7EAC1908 mask = 0xFFBFFEFF 0x0000FFFF 0 0 flags = 0x0004
25417/1:            old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
25417/1:         0.0380  0.0002 sigaction(SIGTERM, 0xFFFFFFFF7FFFF050, 0xFFFFFFFF7FFFF140) = 0
25417/1:            new: hand = 0xFFFFFFFF7EAC1908 mask = 0xFFBFFEFF 0x0000FFFF 0 0 flags = 0x0004
25417/1:            old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
<<< Above here is new data that isn't in the 32-bit. >>>

25417/1:         0.0383  0.0003 stat("/etc/nologin", 0xFFFFFFFF7FFFF890)        Err#2 ENOENT
25417/1:         0.0384  0.0001 open("/etc/imapd.nntp", O_RDONLY)               Err#2 ENOENT
25417/1:         0.0386  0.0002 getuid()                                        = 0 [0]


=============================
Ken Koch
Information Systems
314.935.8315
=============================
_______________________________________________
Imap-uw mailing list
[email protected]
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw

Reply via email to