rollmgr(3)
rollmgr(3) π
okay bestie, welcome to the Net::DNS::SEC::Tools::rollmgr page from User Contributed Perl Documentation. Itβs giving βtalk to the DNSSEC-Tools rollerd rollover managerβ energy, and there are two interface classes described here: general interfaces and communications interfaces π
β¨ NAME β¨
Net::DNS::SEC::Tools::rollmgr β your little hotline to the DNSSEC-Tools rollover manager. No cap π«Ά
π SYNOPSIS π
use Net::DNS::SEC::Tools::rollmgr;
$dir = rollmgr_dir();
$idfile = rollmgr_idfile();
$id = rollmgr_getid();
rollmgr_dropid();
rollmgr_rmid();
rollmgr_cmdint();
$runflag = rollmgr_running();
rollmgr_halt();
rollmgr_phasemsg('long');
rollmgr_channel(1);
($cmd,$data) = rollmgr_getcmd();
$ret = rollmgr_verifycmd($cmd);
rollmgr_sendcmd(CHANNEL_CLOSE,ROLLCMD_ROLLZSK,"example.com");
rollmgr_sendcmd(CHANNEL_WAIT,ROLLCMD_ROLLZSK,"example.com");
($retcode, $respmsg) = rollmgr_getresp();
$descr = rollmgr_get_phase('KSK', $phasecnt);
π DESCRIPTION π
okay so the Net::DNS::SEC::Tools::rollmgr module gives you standard, platform-independent methods for a program to communicate with DNSSEC-Toolsβ rollerd rollover manager. There are two interface classes described here: general interfaces and communications interfaces πΈ
π«Ά GENERAL INTERFACES π«Ά
The interfaces to the Net::DNS::SEC::Tools::rollmgr module are given below, bestie. Letβs go π
rollmgr_dir() π
This routine returns rollerdβs directory. Cute and simple.
rollmgr_idfile() π
This routine returns rollerdβs id file.
rollmgr_getid() π₯
This routine returns rollerdβs process id. If a non-zero value is passed as an argument, the id file will be left open and accessible through the PIDFILE file handle. Peep the WARNINGS section below π
Return Values:
- On success, the first portion of the file contents (up to 80 characters) is returned.
-1β the id file does not exist.
rollmgr_dropid() π
This interface makes sure another instance of rollerd is not running, and then creates an id file for future reference.
Return Values:
1β the id file was successfully created for this process0β another process is already acting asrollerd-1β unable to create the id file
rollmgr_rmid() π¦
This interface deletes rollerdβs id file.
Return Values:
1β the id file was successfully deleted0β no id file exists-1β the calling process is notrollerd-2β unable to delete the id file
rollmgr_cmdint() β
This routine informs rollerd that a command has been sent via rollmgr_sendcmd().
Return Values:
-1β an invalid process id was found forrollerd- Anything else indicates the number of processes that were signaled.
(This should only ever be 1.) π«Ά
rollmgr_running() π
This routine determines if rollerd is running and returns a value indicating the status.
Return Values:
1βrollerdis running.0β The process listed in therollerdprocess id file is not running.-1β Unable to get therollerdprocess id.
rollmgr_halt() π
This routine informs rollerd to shut down.
In the current implementation, the return code from the kill() command is returned.
-1β an invalid process id was found forrollerd- Anything else indicates the number of processes that were signaled.
(This should only ever be 1.) β¨
rollmgr_loadzone(ctlprog,opts,zone) π₯
This routine informs a name server to reload a zoneβs zone file. The $ctlprog argument is the command that will be run to control the name server. If this is an empty string, then the default value for DNSSEC-Tools will be used. The $opts argument is a set of options to be passed to ctlprog. The $zone argument is the name of the zone to be reloaded.
The command line to be run is built in this format:
<$zone> <$opts> reload <$zone>
This format assumes that the rndc command will be used for signalling the name server.
The return value will be the return code from running $ctlprog.
rollmgr_phasemsg() π§
This routine sets the phase-message length of phase-related log messages used by rollerd. The valid levels are "long" and "short", with "long" being the default value.
The long message length means that a phase description will be included with some log messages. For example, the long form of a message about ZSK rollover phase 3 will look like this: "ZSK phase 3 (Waiting for old zone data to expire from caches)".
The short message length means that a phase description will not be included with some log messages. For example, the short form of a message about ZSK rollover phase 3 will look like this: "ZSK phase 3".
Return Values:
1β the phase-message length was set0β an invalid phase-message length was specified
π ROLLERD COMMUNICATIONS INTERFACES π
okay so this is the whole group chat with rollerd, bestie β every function here is about setting up the channel, queueing commands, sending commands, and getting the tea back. no cap, all the deets are staying. π
π rollmgr_channel(serverflag)
This interface sets up a persistent channel for communications with rollerd. If serverflag is true, then the server's side of the channel is created. If serverflag is false, then the client's side of the channel is created.
Currently, the connection may only be made to the localhost. This may be changed to allow remote connections, if this is found to be needed.
Return Values:
1β communications channel successfully established. slay.0β unable to connect to the server.-1β unable to create a Unix socket.-2β unable to bind to the Unix socket. (server only)-3β unable to change the permissions on the Unix socket. (server only)-4β unable to listen on the Unix socket. (server only)-5β the socket name was longer than allowed for a Unix socket.
π rollmgr_queuecmd(cmdname, value)
This interface internally remembers a command and its optional value for later processing. See rollmgr_getcmd() next for further details. itβs giving βhold that thoughtβ energy. π«Ά
π¦ rollmgr_getcmd()
rollmgr_getcmd() processes commands that need to be dealt with. If there are any internally stored commands queued via the rollmgr_queuecmd() function, they are dealt with first. After that it retrieves a command sent over rollerd's communications channel by a client program. The command and the command's data are sent in each message.
The command and the command's data are returned to the caller. literally the whole package. β¨
π rollmgr_sendcmd(closeflag,cmd,data)
rollmgr_sendcmd() sends a command to rollerd. The command must be one of the commands from the table below. This interface creates a communications channel to rollerd and sends the message. The channel is not closed, in case the caller wants to receive a response from rollerd.
The available commands and their required data are:
ROLLCMD_DISPLAYβ data:1/0; purpose: start/stoprollerd's graphical display.ROLLCMD_DSPUBβ data:zone-name; purpose: a DS record has been published.ROLLCMD_DSPUBALLβ data:none; purpose: DS records published for all zones in KSK rollover phase 5.ROLLCMD_GETSTATUSβ data:none; purpose: currently unused.ROLLCMD_LOGFILEβ data:log filename; purpose: change the log file.ROLLCMD_LOGLEVELβ data:log level; purpose: set a new logging level.ROLLCMD_LOGMSGβ data:log message; purpose: add a message to the log.ROLLCMD_LOGTZβ data:timezone; purpose: set timezone for log messages.ROLLCMD_MERGERRFSβ data:rollrec files; purpose: merge rollrec files with the current rollrec file.ROLLCMD_PHASEMSGβ data:long/short; purpose: set long or short phase messages.ROLLCMD_QUEUELISTβ data:none; purpose: returns the names and next event time of zones in the"soon queue"(experimental).ROLLCMD_QUEUESTATUSβ data:none; purpose: returns information about the state of soon-queue processing (experimental).ROLLCMD_ROLLALLβ data:none; purpose: resume rollover for all suspended zones.ROLLCMD_ROLLALLZSKSβ data:none; purpose: force all zones to start ZSK rollover.ROLLCMD_ROLLKSKβ data:zone-name; purpose: force a zone to start KSK rollover.ROLLCMD_ROLLRECβ data:rollrec-name; purpose: changerollerd's rollrec file.ROLLCMD_ROLLZONEβ data:zone name; purpose: restart rollover for a suspended zone.ROLLCMD_ROLLZSKβ data:zone-name; purpose: force a zone to start ZSK rollover.ROLLCMD_RUNQUEUEβ data:none; purpose:rollerdruns through its queue.ROLLCMD_SHUTDOWNβ data:none; purpose: stoprollerd.ROLLCMD_SIGNZONEβ data:zone; purpose: sign a zone (no rollover).ROLLCMD_SIGNZONEsβ data:all or active; purpose: sign all or active zones.ROLLCMD_SKIPALLβ data:none; purpose: suspend all rollovers.ROLLCMD_SKIPZONEβ data:zone name; purpose: suspend rollover for a rolling zone.ROLLCMD_SLEEPTIMEβ data:seconds-count; purpose: setrollerd's sleep time.ROLLCMD_SPLITRRFβ data:rollrec-name,zone names; purpose: move a set of zones from the current rollrec file into a new rollrec file.ROLLCMD_STATUSβ data:none; purpose: get status ofrollerd.ROLLCMD_ZONEGROUPβ data:zonegroup name; purpose: get info on all zonegroups or a particular zonegroup.ROLLCMD_ZONELOGβ data:zone name,logging level; purpose: set the logging level for a particular zone.ROLLCMD_ZONESTATUSβ data:none; purpose: get status of the zones.ROLLCMD_ZSARGSβ data:zonesigner args,zone list; purpose: add a (probably temporary) set of options to the signing of a set of zones.
The data aren't checked for validity by rollmgr_sendcmd(); validity checking is a responsibility of rollerd.
If the caller does not need a response from rollerd, then closeflag should be set to CHANNEL_CLOSE; if a response is required then closeflag should be CHANNEL_WAIT. These values are boolean values, and the constants aren't required.
On success, 1 is returned. If an invalid command is given, 0 is returned.
πΈ rollmgr_getresp()
After executing a client command sent via rollmgr_sendcmd(), rollerd will send a response to the client. rollmgr_getresp() allows the client to retrieve the response.
A return code and a response string are returned, in that order. Both are specific to the command sent. iykyk. π
π§ rollmgr_verifycmd(cmd)
rollmgr_verifycmd() verifies that cmd is a valid command for rollerd. 1 is returned for a valid command; 0 is returned for an invalid command.
1 is returned for a valid command; 0 is returned for an invalid command. yes, it really says it twice, and we are keeping it twice, bestie. π
β rollmgr_get_phase(phasetype, phasenum)
rollmgr_get_phase() returns a description of a particular phase for a particular type of rollover. phasetype specifies the type of rollover, and may be "KSK" or "ZSK". phasenum specifies the phase number whose description is desired. This must be an integer between 0 and 7 (KSK) or 0 and 4 (ZSK). If an invalid phase type or phase number is specified, an empty string is returned.
β οΈ WARNINGS β οΈ
rollmgr_getid()attempts to exclusively lock the id file. Set a timer if this matters to you.rollmgr_getid()has a nice little race condition. We should lock the file prior to opening it, but we can't do so without it being open.
okay these are real warnings, not just vibes β the race condition is literally in the original and weβre not pretending otherwise. π
π COPYRIGHT π
Copyright 2005-2014 SPARTA, Inc. All rights reserved. See the COPYING file included with the DNSSEC-Tools package for details.
β¨ AUTHOR β¨
Wayne Morrison, tewok@tislabs.com
π SEE ALSO π
rollctl(1)Net::DNS::SEC::Tools::keyrec.pm(3)Net::DNS::SEC::Tools::rolllog.pm(3)Net::DNS::SEC::Tools::rollrec.pm(3)rndc(8)rollerd(8)
This page is serving perl v5.44.0, dated 2026-10-17, and it's the rollmgr(3) manual β k bye bestie, go slay some rollover commands! πβ¨π
π¦ where this page comes from
- arch rolling: dnssec-tools 2.2.3-16 Β· BSD
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms