!C99Shell v. 1.0 pre-release build #16!

Software: Apache/2.0.54 (Fedora). PHP/5.0.4 

uname -a: Linux mina-info.me 2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 

uid=48(apache) gid=48(apache) groups=48(apache)
context=system_u:system_r:httpd_sys_script_t
 

Safe-mode: OFF (not secure)

/usr/share/doc/db4-devel-4.3.27/examples_cxx/   drwxr-xr-x
Free 3.19 GB of 27.03 GB (11.82%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     AccessExample.cpp (3.42 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 1997-2004
*    Sleepycat Software.  All rights reserved.
*
* $Id: AccessExample.cpp,v 11.24 2004/09/17 22:00:28 mjc Exp $
*/

#include <sys/types.h>

#include <iostream>
#include <iomanip>
#include <errno.h>
#include <stdlib.h>
#include <string.h>

#ifdef _WIN32
extern "C" {
  extern int getopt(int, char * const *, const char *);
  extern int optind;
}
#else
#include <unistd.h>
#endif

#include <db_cxx.h>

#define    DATABASE    "access.db"

using std::cin;
using std::cout;
using std::cerr;

class AccessExample
{
public:
    AccessExample();
    void run(bool removeExistingDatabase, const char *fileName);

private:
    // no need for copy and assignment
    AccessExample(const AccessExample &);
    void operator = (const AccessExample &);
};

int
usage()
{
    (void)fprintf(stderr, "usage: AccessExample [-r] [database]\n");
    return (EXIT_FAILURE);
}

int
main(int argc, char *argv[])
{
    int ch, rflag;
    const char *database;

    rflag = 0;
    while ((ch = getopt(argc, argv, "r")) != EOF)
        switch (ch) {
        case 'r':
            rflag = 1;
            break;
        case '?':
        default:
            return (usage());
        }
    argc -= optind;
    argv += optind;

    /* Accept optional database name. */
    database = *argv == NULL ? DATABASE : argv[0];

    // Use a try block just to report any errors.
    // An alternate approach to using exceptions is to
    // use error models (see DbEnv::set_error_model()) so
    // that error codes are returned for all Berkeley DB methods.
    //
    try {
        AccessExample app;
        app.run((bool)(rflag == 1 ? true : false), database);
        return (EXIT_SUCCESS);
    }
    catch (DbException &dbe) {
        cerr << "AccessExample: " << dbe.what() << "\n";
        return (EXIT_FAILURE);
    }
}

AccessExample::AccessExample()
{
}

void AccessExample::run(bool removeExistingDatabase, const char *fileName)
{
    // Remove the previous database.
    if (removeExistingDatabase)
        (void)remove(fileName);

    // Create the database object.
    // There is no environment for this simple example.
    Db db(0, 0);

    db.set_error_stream(&cerr);
    db.set_errpfx("AccessExample");
    db.set_pagesize(1024);        /* Page size: 1K. */
    db.set_cachesize(0, 32 * 1024, 0);
    db.open(NULL, fileName, NULL, DB_BTREE, DB_CREATE, 0664);

    //
    // Insert records into the database, where the key is the user
    // input and the data is the user input in reverse order.
    //
    char buf[1024], rbuf[1024];
    char *p, *t;
    int ret;
    u_int32_t len;

    for (;;) {
        cout << "input> ";
        cout.flush();

        cin.getline(buf, sizeof(buf));
        if (cin.eof())
            break;

        if ((len = (u_int32_t)strlen(buf)) <= 0)
            continue;
        for (t = rbuf, p = buf + (len - 1); p >= buf;)
            *t++ = *p--;
        *t++ = '\0';

        Dbt key(buf, len + 1);
        Dbt data(rbuf, len + 1);

        ret = db.put(0, &key, &data, DB_NOOVERWRITE);
        if (ret == DB_KEYEXIST) {
            cout << "Key " << buf << " already exists.\n";
        }
    }
    cout << "\n";

    // We put a try block around this section of code
    // to ensure that our database is properly closed
    // in the event of an error.
    //
    try {
        // Acquire a cursor for the table.
        Dbc *dbcp;
        db.cursor(NULL, &dbcp, 0);

        // Walk through the table, printing the key/data pairs.
        Dbt key;
        Dbt data;
        while (dbcp->get(&key, &data, DB_NEXT) == 0) {
            char *key_string = (char *)key.get_data();
            char *data_string = (char *)data.get_data();
            cout << key_string << " : " << data_string << "\n";
        }
        dbcp->close();
    }
    catch (DbException &dbe) {
        cerr << "AccessExample: " << dbe.what() << "\n";
    }

    db.close(0);
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #16 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0037 ]--