view libcommon/be_init.c @ 93:6041c601304d

fcsim1-mkprov: revert OTA key addition It appears that GrcardSIM2 cards (which is what we got for FCSIM1) do not support OTA after all, contrary to what we were previously led to believe by some tech support emails from Grcard - apparently those support emails and OTA descriptions referred to some other card model(s).
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 21 Apr 2021 05:38:39 +0000
parents e2ef4b8e4136
children
line wrap: on
line source

/*
 * This module is responsible for collecting the initial info
 * strings emitted by the back end.
 */

#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>

extern FILE *rpipeF;

#define	MAX_INIT_STRING	254

char be_reader_name[MAX_INIT_STRING+1];
char be_atr_string[MAX_INIT_STRING+1];
char be_extra_info[MAX_INIT_STRING+1];

static void
copy_without_leading_space(input_str, dest)
	char *input_str, *dest;
{
	char *cp;

	for (cp = input_str; isspace(*cp); cp++)
		;
	strcpy(dest, cp);
}

collect_backend_init_strings()
{
	char inbuf[MAX_INIT_STRING+2], *cp;

	for (;;) {
		if (!fgets(inbuf, sizeof inbuf, rpipeF)) {
			fprintf(stderr,
		"start-up error: EOF reading init strings from back end\n");
			exit(1);
		}
		cp = index(inbuf, '\n');
		if (!cp) {
			fprintf(stderr,
		"start-up error: init string from back end has no newline\n");
			exit(1);
		}
		*cp = '\0';
		if (!inbuf[0])
			break;
		switch (inbuf[0]) {
		case 'A':
			copy_without_leading_space(inbuf + 1, be_atr_string);
			break;
		case 'R':
			copy_without_leading_space(inbuf + 1, be_reader_name);
			break;
		case 'X':
			copy_without_leading_space(inbuf + 1, be_extra_info);
			break;
		}
	}
	return(0);
}