aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2011-05-18 12:37:57 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2011-05-18 12:37:57 +0300
commitf46531f8627326bb31f75250096986d162ce5fdb (patch)
tree46711a8fbfec60f0a99748cbe376b8240a70e25b
parent768689775c020ae36a0de7b3fdc166777685bd6e (diff)
downloadnssync-f46531f8627326bb31f75250096986d162ce5fdb.tar.gz
nssync-f46531f8627326bb31f75250096986d162ce5fdb.tar.bz2
Print to a specified output file.
-rw-r--r--src/nssync.c2
-rw-r--r--src/nssync.h1
-rw-r--r--src/output.c70
3 files changed, 39 insertions, 34 deletions
diff --git a/src/nssync.c b/src/nssync.c
index ce55bc4..6360fc2 100644
--- a/src/nssync.c
+++ b/src/nssync.c
@@ -53,3 +53,3 @@ main(int argc, char **argv)
sql_connect();
- format_soa();
+ format_soa(stdout);
//FIXME
diff --git a/src/nssync.h b/src/nssync.h
index aef5fa4..028d6a0 100644
--- a/src/nssync.h
+++ b/src/nssync.h
@@ -65,2 +65,3 @@ int sql_do_query(const char *query,
+void format_soa(FILE *fp);
diff --git a/src/output.c b/src/output.c
index 3a6ba35..72a09c1 100644
--- a/src/output.c
+++ b/src/output.c
@@ -30,2 +30,3 @@ format_ns_record(MYSQL_ROW row, unsigned nf, void *data)
{
+ FILE *fp = data;
if (nf != _ns_nfields) {
@@ -35,4 +36,4 @@ format_ns_record(MYSQL_ROW row, unsigned nf, void *data)
/* FIXME: TTL */
- printf("\t%s\t%s\n",
- row[f_ns_type], row[f_ns_data]);
+ fprintf(fp, "\t%s\t%s\n",
+ row[f_ns_type], row[f_ns_data]);
return 0;
@@ -53,2 +54,3 @@ format_rr_record(MYSQL_ROW row, unsigned nf, void *data)
{
+ FILE *fp = data;
if (nf != _rr_nfields) {
@@ -60,9 +62,9 @@ format_rr_record(MYSQL_ROW row, unsigned nf, void *data)
if (strcasecmp(row[f_rr_type], "MX") == 0)
- printf("%s\t%s\tMX\t%s\t%s\n",
- row[f_rr_host], S(row[f_rr_ttl]),
- row[f_rr_priority], row[f_rr_data]);
+ fprintf(fp, "%s\t%s\tMX\t%s\t%s\n",
+ row[f_rr_host], S(row[f_rr_ttl]),
+ row[f_rr_priority], row[f_rr_data]);
else
- printf("%s\t%s\t%s\t%s\n",
- row[f_rr_host], S(row[f_rr_ttl]),
- row[f_rr_type], row[f_rr_data]);
+ fprintf(fp, "%s\t%s\t%s\t%s\n",
+ row[f_rr_host], S(row[f_rr_ttl]),
+ row[f_rr_type], row[f_rr_data]);
return 0;
@@ -98,2 +100,3 @@ format_soa_record(MYSQL_ROW row, unsigned nf, void *data)
{
+ FILE *fp = data;
struct wordsplit ws;
@@ -107,21 +110,22 @@ format_soa_record(MYSQL_ROW row, unsigned nf, void *data)
return 0;
- printf("$ORIGIN .\n");
+ fprintf(fp, "$ORIGIN .\n");
if (row[f_soa_ttl])
- printf("$TTL %s\n", row[f_soa_ttl]);
- printf("%s %s IN SOA %s %s (\n"
- "\t%s ; Serial\n"
- "\t%s ; Refresh\n"
- "\t%s ; Retry\n"
- "\t%s ; Expire\n"
- "\t%s) ; Minimum\n",
- row[f_soa_zone],
- S(row[f_soa_ttl]),
- row[f_soa_data],
- row[f_soa_person],
- row[f_soa_serial],
- row[f_soa_refresh],
- row[f_soa_retry],
- row[f_soa_expire],
- row[f_soa_minimum]);
-
+ fprintf(fp, "$TTL %s\n", row[f_soa_ttl]);
+ fprintf(fp,
+ "%s %s IN SOA %s %s (\n"
+ "\t%s ; Serial\n"
+ "\t%s ; Refresh\n"
+ "\t%s ; Retry\n"
+ "\t%s ; Expire\n"
+ "\t%s) ; Minimum\n",
+ row[f_soa_zone],
+ S(row[f_soa_ttl]),
+ row[f_soa_data],
+ row[f_soa_person],
+ row[f_soa_serial],
+ row[f_soa_refresh],
+ row[f_soa_retry],
+ row[f_soa_expire],
+ row[f_soa_minimum]);
+
env[0] = "zone";
@@ -129,3 +133,3 @@ format_soa_record(MYSQL_ROW row, unsigned nf, void *data)
env[2] = 0;
-
+
ws.ws_env = env;
@@ -138,3 +142,3 @@ format_soa_record(MYSQL_ROW row, unsigned nf, void *data)
- if (sql_do_query(ws.ws_wordv[0], format_ns_record, NULL))
+ if (sql_do_query(ws.ws_wordv[0], format_ns_record, fp))
exit(EX_UNAVAILABLE);
@@ -148,6 +152,6 @@ format_soa_record(MYSQL_ROW row, unsigned nf, void *data)
}
-
- if (sql_do_query(ws.ws_wordv[0], format_rr_record, NULL))
+
+ if (sql_do_query(ws.ws_wordv[0], format_rr_record, fp))
exit(EX_UNAVAILABLE);
-
+
wordsplit_free(&ws);
@@ -158,5 +162,5 @@ format_soa_record(MYSQL_ROW row, unsigned nf, void *data)
void
-format_soa()
+format_soa(FILE *fp)
{
- if (sql_do_query(soa_query, format_soa_record, NULL))
+ if (sql_do_query(soa_query, format_soa_record, fp))
exit(EX_UNAVAILABLE);

Return to:

Send suggestions and report system problems to the System administrator.