~ubuntu-branches/debian/sid/ntp/sid

« back to all changes in this revision

Viewing changes to .pc/format-security.patch/ntpd/ntp_control.c

  • Committer: Package Import Robot
  • Author(s): Peter Eisentraut
  • Date: 2012-02-27 13:55:56 UTC
  • mfrom: (1.2.12)
  • Revision ID: package-import@ubuntu.com-20120227135556-dkx4mkod5trl5bgt
Tags: 1:4.2.6.p5+dfsg-1
* New upstream release (closes: #644673)
* Updated instructions on generating autotools.patch
* Updated standards version

Show diffs side-by-side

added added

removed removed

Lines of Context:
59
59
static  void    ctl_putts       (const char *, l_fp *);
60
60
static  void    ctl_putadr      (const char *, u_int32,
61
61
                                 sockaddr_u *);
62
 
static  void    ctl_putid       (const char *, char *);
 
62
static  void    ctl_putrefid    (const char *, u_int32);
63
63
static  void    ctl_putarray    (const char *, double *, int);
64
64
static  void    ctl_putsys      (int);
65
65
static  void    ctl_putpeer     (int, struct peer *);
1254
1254
        ctl_putdata(buffer, (unsigned)(cp - buffer), 0);
1255
1255
}
1256
1256
 
 
1257
 
1257
1258
/*
1258
 
 * ctl_putid - write a tagged clock ID into the response
 
1259
 * ctl_putrefid - send a u_int32 refid as printable text
1259
1260
 */
1260
1261
static void
1261
 
ctl_putid(
1262
 
        const char *tag,
1263
 
        char *id
 
1262
ctl_putrefid(
 
1263
        const char *    tag,
 
1264
        u_int32         refid
1264
1265
        )
1265
1266
{
1266
 
        register char *cp;
1267
 
        register const char *cq;
1268
 
        char buffer[200];
1269
 
 
1270
 
        cp = buffer;
1271
 
        cq = tag;
1272
 
        while (*cq != '\0')
1273
 
                *cp++ = *cq++;
1274
 
 
1275
 
        *cp++ = '=';
1276
 
        NTP_INSIST((cp - buffer) < sizeof(buffer));
1277
 
        snprintf(cp, sizeof(buffer) - (cp - buffer), "%.4s", id);
1278
 
        cp += strlen(cp);
1279
 
        ctl_putdata(buffer, (unsigned)( cp - buffer ), 0);
 
1267
        char    output[16];
 
1268
        char *  optr;
 
1269
        char *  oplim;
 
1270
        char *  iptr;
 
1271
        char *  iplim;
 
1272
        char *  past_eq;
 
1273
 
 
1274
        optr = output;
 
1275
        oplim = output + sizeof(output);
 
1276
        while (optr < oplim && '\0' != *tag)
 
1277
                *optr++ = *tag++;
 
1278
        if (optr < oplim) {
 
1279
                *optr++ = '=';
 
1280
                past_eq = optr;
 
1281
        }
 
1282
        if (!(optr < oplim))
 
1283
                return;
 
1284
        iptr = (char *)&refid;
 
1285
        iplim = iptr + sizeof(refid);
 
1286
        for ( ; optr < oplim && iptr < iplim && '\0' != *iptr; 
 
1287
             iptr++, optr++)
 
1288
                if (isprint(*iptr))
 
1289
                        *optr = *iptr;
 
1290
                else
 
1291
                        *optr = '.';
 
1292
        if (!(optr <= oplim))
 
1293
                optr = past_eq;
 
1294
        ctl_putdata(output, (u_int)(optr - output), FALSE);
1280
1295
}
1281
1296
 
1282
1297
 
1353
1368
 
1354
1369
            case CS_REFID:
1355
1370
                if (sys_stratum > 1 && sys_stratum < STRATUM_UNSPEC)
1356
 
                        ctl_putadr(sys_var[CS_REFID].text, sys_refid, NULL);
 
1371
                        ctl_putadr(sys_var[varid].text, sys_refid, NULL);
1357
1372
                else
1358
 
                        ctl_putid(sys_var[CS_REFID].text,
1359
 
                                  (char *)&sys_refid);
 
1373
                        ctl_putrefid(sys_var[varid].text, sys_refid);
1360
1374
                break;
1361
1375
 
1362
1376
            case CS_REFTIME:
1678
1692
                break;
1679
1693
 
1680
1694
            case CP_REFID:
 
1695
#ifdef REFCLOCK
1681
1696
                if (peer->flags & FLAG_REFCLOCK) {
1682
 
                        ctl_putid(peer_var[CP_REFID].text,
1683
 
                                  (char *)&peer->refid);
1684
 
                } else {
1685
 
                        if (peer->stratum > 1 && peer->stratum <
1686
 
                            STRATUM_UNSPEC)
1687
 
                                ctl_putadr(peer_var[CP_REFID].text,
1688
 
                                           peer->refid, NULL);
1689
 
                        else
1690
 
                                ctl_putid(peer_var[CP_REFID].text,
1691
 
                                          (char *)&peer->refid);
 
1697
                        ctl_putrefid(peer_var[varid].text, peer->refid);
 
1698
                        break;
1692
1699
                }
 
1700
#endif
 
1701
                if (peer->stratum > 1 && peer->stratum < STRATUM_UNSPEC)
 
1702
                        ctl_putadr(peer_var[varid].text, peer->refid,
 
1703
                                   NULL);
 
1704
                else
 
1705
                        ctl_putrefid(peer_var[varid].text, peer->refid);
1693
1706
                break;
1694
1707
 
1695
1708
            case CP_REFTIME:
1923
1936
                break;
1924
1937
 
1925
1938
            case CC_FUDGETIME2:
1926
 
                if (mustput || (clock_stat->haveflags & CLK_HAVETIME2))                         ctl_putdbl(clock_var[CC_FUDGETIME2].text,
1927
 
                                                                                                           clock_stat->fudgetime2 * 1e3);
 
1939
                if (mustput || (clock_stat->haveflags & CLK_HAVETIME2))
 
1940
                        ctl_putdbl(clock_var[CC_FUDGETIME2].text,
 
1941
                                   clock_stat->fudgetime2 * 1e3);
1928
1942
                break;
1929
1943
 
1930
1944
            case CC_FUDGEVAL1:
1937
1951
                if (mustput || (clock_stat->haveflags & CLK_HAVEVAL2)) {
1938
1952
                        if (clock_stat->fudgeval1 > 1)
1939
1953
                                ctl_putadr(clock_var[CC_FUDGEVAL2].text,
1940
 
                                           (u_int32)clock_stat->fudgeval2, NULL);
 
1954
                                           clock_stat->fudgeval2, NULL);
1941
1955
                        else
1942
 
                                ctl_putid(clock_var[CC_FUDGEVAL2].text,
1943
 
                                          (char *)&clock_stat->fudgeval2);
 
1956
                                ctl_putrefid(clock_var[CC_FUDGEVAL2].text,
 
1957
                                             clock_stat->fudgeval2);
1944
1958
                }
1945
1959
                break;
1946
1960