ShellBanner
System:Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686
Software:Apache. PHP/5.3.6-13ubuntu3.10
ID:uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
Safe Mode:OFF
Open_Basedir:OFF
Freespace:26.09 GB of 70.42 GB (37.05%)
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

/ usr/ src/ courier-0.66.1/ gdbmobj/ - drwxrwxrwx

Directory:
Viewing file:     gdbmobj.c (2.9 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
** Copyright 1998 - 2000 Double Precision, Inc.  See COPYING for
** distribution information.
*/

#if    HAVE_CONFIG_H
#include    "config.h"
#endif

#include    "gdbmobj.h"
#include    <stdlib.h>
#if    HAVE_FCNTL_H
#include    <fcntl.h>
#endif
#if    HAVE_UNISTD_H
#include    <unistd.h>
#endif


void gdbmobj_init(struct gdbmobj *obj)
{
    obj->has_dbf=0;
    obj->prev_key=0;
    obj->prev_key_len=0;
}

void gdbmobj_close(struct gdbmobj *obj)
{
    if (obj->has_dbf)
    {
        obj->has_dbf=0;
        gdbm_close(obj->dbf);
    }
    if (obj->prev_key)
    {
        free(obj->prev_key);
        obj->prev_key=0;
    }
}

int gdbmobj_open(struct gdbmobj *obj, const char *filename, const char *modestr)
{
int    mode=GDBM_READER;

    for ( ; *modestr; modestr++)
        switch (*modestr)    {
        case 'c':
        case 'C':
            mode=GDBM_WRCREAT;
            break;
        case 'w':
        case 'W':
            mode=GDBM_WRITER;
            break;
        case 'n':
        case 'N':
            mode=GDBM_NEWDB;
            break;
    }

    gdbmobj_close(obj);
    if ((obj->dbf=gdbm_open((char *)filename, 0, mode, 0664, 0)) != 0)
    {
        /* Where possible, set the close-on-exec bit */

#if    HAVE_GDBM_FDESC
#ifdef  FD_CLOEXEC

    int    fd=gdbm_fdesc(obj->dbf);

        if (fd >= 0)    fcntl(fd, F_SETFD, FD_CLOEXEC);
#endif
#endif

        obj->has_dbf=1;
        return (0);
    }
    return (-1);
}

int gdbmobj_store(struct gdbmobj *obj, const char *key, size_t keylen,
        const char *data,
        size_t    datalen,
        const    char *mode)
{
datum dkey;
datum dval;

    dkey.dptr=(char *)key;
    dkey.dsize=keylen;

    dval.dptr=(char *)data;
    dval.dsize=datalen;

    return (obj->has_dbf ? gdbm_store(obj->dbf, dkey, dval, (
            *mode == 'i' || *mode == 'I' ?
                GDBM_INSERT:GDBM_REPLACE)):-1);
}

int    gdbmobj_exists(struct gdbmobj *obj, const char *key, size_t keylen)
{
datum    dkey;

    if (!obj->has_dbf)    return (0);

    dkey.dptr=(char *)key;
    dkey.dsize=keylen;

    if (gdbm_exists(obj->dbf, dkey))    return (1);
    return (0);
}

char *gdbm_dofetch(struct gdbmobj *, const char *, size_t, size_t *);

char    *gdbmobj_fetch(struct gdbmobj *obj, const char *key, size_t keylen,
        size_t *datalen, const char *options)
{
char    *p;

    for (;;)
    {
        if ((p=gdbm_dofetch(obj, key, keylen, datalen)) != 0)
            return (p);
        if (!options)    break;
        if (*options == 'I')
        {
            while (keylen && key[--keylen] != '.')
                ;
            if (!keylen)    break;
            continue;
        }
        if (*options == 'D')
        {
        size_t    i;

            for (i=0; i<keylen; i++)
                if (key[i] == '@') { ++i; break; }
            if (i < keylen)
            {
                if ((p=gdbm_dofetch(obj, key, i, datalen)) != 0)
                    return (p);
                key += i;
                keylen -= i;
                continue;
            }

            for (i=0; i<keylen; i++)
                if (key[i] == '.') { ++i; break; }
            if (i < keylen)
            {
                key += i;
                keylen -= i;
                continue;
            }
            break;
        }
        break;
    }
    return (0);
}

char *gdbm_dofetch(struct gdbmobj *obj,
    const char *key, size_t keylen, size_t *datalen)
{
datum    dkey, val;

    if (!obj->has_dbf)    return (0);

    dkey.dptr=(char *)key;
    dkey.dsize=keylen;

    val=gdbm_fetch(obj->dbf, dkey);

    if (!val.dptr)    return (0);
    *datalen=val.dsize;
    return (val.dptr);
}
Command:
Quick Commands:
Upload:
[OK] Max size: 100MB
PHP Filesystem: <@ Ú
Search File:
regexp
Create File:
Overwrite [OK]
View File:
Mass Defacement:
[+] Main Directory: [+] Defacement Url:
LmfaoX Shell - Private Build [BETA] - v0.1 -; Generated: 0.4012 seconds