Porting CUPS

Paul Smedley paulat at smedleydot.info
Fri Mar 24 15:21:54 PST 2006


Hi All,
I'm trying to port cups to the OS/2 operating system.  It builds 
extremely easily, howe on trying to start cupsd I get a crash... with 
debug enabled, the following shows on stdout:

cupsLangGet(language="(null)")
cupsLangGet: current locale is "C"
cupsLangGet: new language value is "en_AU"
cupsLangGet: langname="en", country="AU", charset="UTF8"
cupsLangGet: encoding=11(utf-8)
cups_cache_lookup(name="en_AU", encoding=11(utf-8))
cups_cache_lookup: returning NULL!
cups_cache_lookup(name="en", encoding=11(utf-8))
cups_cache_lookup: returning NULL!
access("/cups/lib/locale/en/cups_en.po", 0): No such file or directory
_cupsMessageLoad(filename="/cups/lib/locale/C/cups_C.po")
cupsFileOpen(filename="/cups/lib/locale/C/cups_C.po", mode="r")
cupsFileOpen(filename="/cups/etc/cups/cupsd.conf", mode="r")
cupsFileOpenFd(fd=3, mode="r")
cups_fill(fp=0x2fbf40)
    fp->ptr=0, fp->end=0, fp->buf=0x2fbf48, fp->pos=0, fp->eof=0
    fp->compressed=0
    returning 2369!
cupsFileOpen(filename="/cups/var/log/cups/error_log", mode="a")
cupsFileOpenFd(fd=5, mode="a")
cupsFilePrintf(fp=0x2fdfa0, format="%c %s ", ...)
cupsFileFlush(fp=0x2fdfa0)
    Flushing 100 bytes...
cups_write(fp=0x2fdfa0, buf=0x2fdfa8, bytes=100)
    count=100
httpAddrGetList(hostname="localhost", family=AF_UNSPEC, service="631")

Killed by SIGSEGV
pid=0x16f2 ppid=0x16f1 tid=0x0001 slot=0x0118 pri=0x0200 mc=0x0001
U:\DEV\CUPS-1.2RC1\SCHEDULER\CUPSD.EXE
CUPSD 0:0011eb03
cs:eip=005b:0012eb03      ss:esp=0053:00259290      ebp=002592d8
 ds=0053      es=0053      fs=150b      gs=0000     efl=00010206
eax=00000000 ebx=0025ffa8 ecx=00000302 edx=177b803c edi=00000000 
esi=00000000
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.

Would I be right in assuming that the fact that httpAddrGetList has 
been called with the address family being unknown is likely to be the 
problem? Or does cups assume AF_INET if it is called with AF_UNSPEC?

The actual call causing the SIGSEGV is:
            first->addr.ipv4.sin_family = AF_INET; on line ~422 in 
./cups/http-addrlist.c

-- 
Cheers,

Paul.




More information about the cups-devel mailing list