Exemplo n.º 1
0
static PyObject *
get_extension (certificate_x509 *self, PyObject *args, PyObject *keywords)
{
	const char *oid = NULL;
	const char *name = NULL;

	static char *keywordlist[] = { "oid", "name", NULL };

	if (!PyArg_ParseTupleAndKeywords (args, keywords, "|ss", keywordlist,
					  &oid, &name)) {
		return NULL;
	}

	char *value = NULL;
	size_t length;
	ASN1_OBJECT *obj = NULL;
	if (name != NULL) {
		obj = get_object_by_name (name);
	} else {
		obj = get_object_by_oid (oid);
	}

	if (obj == NULL) {
		Py_INCREF (Py_None);
		return Py_None;
	}

	length = get_extension_by_object (self->x509, obj, &value);
	ASN1_OBJECT_free (obj);
	if (value != NULL) {
		PyObject *extension = PyString_FromStringAndSize (value,
								  length);
		free (value);
		return extension;
	} else {
		Py_INCREF (Py_None);
		return Py_None;
	}
}
Exemplo n.º 2
0
bool load_player(actor_t *p, FILE *f)
{
        struct player_save_struct s;
        int i;
        char str[6];

        fread(str, sizeof(char), 6, f);
        if(strcmp(str, "PLAYER")) {
                fprintf(stderr, "DEBUG: %s:%d - str != PLAYER in load_player!\n", __FILE__, __LINE__);
                fprintf(stderr, "read %s instead of PLAYER?!\n", str);
                return false;
        }

        printf("loadplayerstart\n");
        fread(&s, sizeof(struct player_save_struct), 1, f);
        p->x = s.x;
        p->y = s.y;
        p->oldx = s.oldx;
        p->oldy = s.oldy;
        p->px = s.px;
        p->py = s.py;
        p->viewradius = s.viewradius;
        strcpy(p->name, s.name);
        p->hp = s.hp;
        p->maxhp = s.maxhp;
        p->xp = s.xp;
        p->ac = s.ac;
        p->attr = s.attr;
        p->attrmod = s.attrmod;
        p->level = s.level;
        p->race = s.race;
        p->cla = s.cla;
        p->flags = s.flags;
        p->speed = s.speed;
        p->worldview = s.worldview;
        p->wvfactor  = s.wvfactor;
        p->kills = s.kills;

        for(i = 0; i < MAX_SKILLS; i++)
                p->skill[i] = s.skill[i];
                

        p->inventory = load_inventory(f);

        if(!p->inventory) {
fprintf(stderr, "DEBUG: %s:%d - load_inventory for player failed!\n", __FILE__, __LINE__);
                return false;
        }

        if(s.weapon) {
                p->weapon = get_object_by_oid(p->inventory, s.weapon);
                if(!p->weapon) {
fprintf(stderr, "DEBUG: %s:%d - get object by oid failed!\n", __FILE__, __LINE__);
                        return false;
                }
        } else {
                p->weapon = NULL;
        }

        for(i = 0; i < WEAR_SLOTS; i++) {
                if(s.w[i]) {
                        p->w[i] = get_object_by_oid(p->inventory, s.w[i]);
                        if(!p->w[i]) {
                                printf("get_object_by_oid failed!\n");
                                return false;
                        }
                } else {
                        p->w[i] = NULL;
                }
        }

        //for(i = 0; i < MAX_TEMP_EFFECTS; i++)
                //p->temp[i] = s.temp[i];

        printf("loadplayerend\n");
        return true;
}
Exemplo n.º 3
0
bool load_monster(monster_t *m, level_t *l, FILE *f)
{
        char str[7];
        bool flag;
        monster_t mdef;
        int oid;

        fread(str, sizeof(char), 7, f);
        if(strncmp(str, "MONSTER", 7)) {
                fprintf(stderr, "NO THIS IS NOT A MONSTER");
                fprintf(stderr, "load_monster! STR=%s", str);
                return false;
        }

        if(!m)
                m = gtmalloc(sizeof(monster_t));

        fread(&m->id,       sizeof(short), 1, f);
        fread(&m->mid,      sizeof(int),   1, f);
        fread(&m->y,        sizeof(short), 1, f);
        fread(&m->x,        sizeof(short), 1, f);
        fread(&m->hp,       sizeof(int),   1, f);
        fread(&m->ac,       sizeof(short), 1, f);
        fread(&m->goalx,    sizeof(short), 1, f);
        fread(&m->goaly,    sizeof(short), 1, f);
        fread(&m->attrmod,  sizeof(sattr_t), 1, f);
        fread(&flag,        sizeof(bool),  1, f);
        if(flag)
                m->attacker = player;
        else
                m->attacker = NULL;

        fread(&flag,        sizeof(bool), 1, f);
        if(flag)
                m->inventory = load_inventory(f);

        mdef = get_monsterdef(m->id);

        m->oldx = mdef.oldx;
        m->oldy = mdef.oldy;
        m->viewradius = mdef.viewradius;
        strcpy(m->name, mdef.name);
        m->maxhp = mdef.maxhp;
        m->xp = mdef.xp;
        m->attr = mdef.attr;
        m->level = mdef.level;
        m->race = mdef.race;
        m->cla = mdef.cla;
        //m->w = mdef.w;          // implement this when monsters can wield and wear stuff!
        m->flags = mdef.flags;
        m->c = mdef.c;
        m->speed = mdef.speed;
        m->ai = mdef.ai;

        l->c[m->y][m->x].monster = m;

        m->prev = l->monsters;
        m->head = l->monsters;
        m->next = l->monsters->next;
        l->monsters->next = m;
        if(m->next)
                m->next->prev = m;


        fread(&oid, sizeof(int), 1, f);
        if(oid)
                m->weapon = get_object_by_oid(m->inventory, oid);
        else
                m->weapon = NULL;

        // add loading attacker, wear_t, etc.
        return true;
}