1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
<HTML>
<HEAD>
<TITLE>FS::svc_domain - Object methods for svc_domain records</TITLE>
<LINK REV="made" HREF="mailto:perl@packages.debian.org">
</HEAD>
<BODY>
<A NAME="__index__"></A>
<!-- INDEX BEGIN -->
<UL>
<LI><A HREF="#name">NAME</A></LI>
<LI><A HREF="#synopsis">SYNOPSIS</A></LI>
<LI><A HREF="#description">DESCRIPTION</A></LI>
<LI><A HREF="#methods">METHODS</A></LI>
<LI><A HREF="#version">VERSION</A></LI>
<LI><A HREF="#bugs">BUGS</A></LI>
<LI><A HREF="#see also">SEE ALSO</A></LI>
</UL>
<!-- INDEX END -->
<HR>
<P>
<H1><A NAME="name">NAME</A></H1>
<P>FS::svc_domain - Object methods for svc_domain records</P>
<P>
<HR>
<H1><A NAME="synopsis">SYNOPSIS</A></H1>
<PRE>
use FS::svc_domain;</PRE>
<PRE>
$record = new FS::svc_domain \%hash;
$record = new FS::svc_domain { 'column' => 'value' };</PRE>
<PRE>
$error = $record->insert;</PRE>
<PRE>
$error = $new_record->replace($old_record);</PRE>
<PRE>
$error = $record->delete;</PRE>
<PRE>
$error = $record->check;</PRE>
<PRE>
$error = $record->suspend;</PRE>
<PRE>
$error = $record->unsuspend;</PRE>
<PRE>
$error = $record->cancel;</PRE>
<P>
<HR>
<H1><A NAME="description">DESCRIPTION</A></H1>
<P>An FS::svc_domain object represents a domain. FS::svc_domain inherits from
FS::svc_Common. The following fields are currently supported:</P>
<DL>
<DT><STRONG><A NAME="item_key">svcnum - primary key (assigned automatically for new accounts)</A></STRONG><BR>
<DD>
<DT><STRONG><A NAME="item_domain">domain</A></STRONG><BR>
<DD>
<DT><STRONG><A NAME="item_catchall_%2D_optional_svcnum_of_an_svc_acct_record">catchall - optional svcnum of an svc_acct record, designating an email catchall account.</A></STRONG><BR>
<DD>
</DL>
<P>
<HR>
<H1><A NAME="methods">METHODS</A></H1>
<DL>
<DT><STRONG><A NAME="item_new">new HASHREF</A></STRONG><BR>
<DD>
Creates a new domain. To add the domain to the database, see <A HREF="#insert">insert</A>.
<P></P>
<DT><STRONG><A NAME="item_insert">insert</A></STRONG><BR>
<DD>
Adds this domain to the database. If there is an error, returns the error,
otherwise returns false.
<P>The additional fields <EM>pkgnum</EM> and <EM>svcpart</EM> (see <A HREF=".././FS/cust_svc.html">the FS::cust_svc manpage</A>) should be
defined. An FS::cust_svc record will be created and inserted.</P>
<P>The additional field <EM>action</EM> should be set to <EM>N</EM> for new domains or <EM>M</EM>
for transfers.</P>
<P>A registration or transfer email will be submitted unless
$FS::svc_domain::whois_hack is true.</P>
<P>The additional field <EM>email</EM> can be used to manually set the admin contact
email address on this email. Otherwise, the svc_acct records for this package
(see <A HREF=".././FS/cust_pkg.html">the FS::cust_pkg manpage</A>) are searched. If there is exactly one svc_acct record
in the same package, it is automatically used. Otherwise an error is returned.</P>
<P>If any <EM>soamachine</EM> configuration file exists, an SOA record is added to
the domain_record table (see <FS::domain_record>).</P>
<P>If any machines are defined in the <EM>nsmachines</EM> configuration file, NS
records are added to the domain_record table (see <A HREF=".././FS/domain_record.html">the FS::domain_record manpage</A>).</P>
<P>If any machines are defined in the <EM>mxmachines</EM> configuration file, MX
records are added to the domain_record table (see <A HREF=".././FS/domain_record.html">the FS::domain_record manpage</A>).</P>
<P>If a machine is defined in the <EM>shellmachine</EM> configuration value, the
<EM>qmailmachines</EM> configuration file exists, and the <EM>catchall</EM> field points
to an an account with a home directory (see <A HREF=".././FS/svc_acct.html">the FS::svc_acct manpage</A>), the command:</P>
<PRE>
[ -e $dir/.qmail-$qdomain-defualt ] || {
touch $dir/.qmail-$qdomain-default;
chown $uid:$gid $dir/.qmail-$qdomain-default;
}</PRE>
<P>is executed on shellmachine via ssh (see <EM>dot-qmail/``EXTENSION ADDRESSES''</EM>).
This behaviour can be supressed by setting $FS::svc_domain::nossh_hack true.</P>
<P>a machine is defined
in the</P>
<P></P>
<DT><STRONG><A NAME="item_delete">delete</A></STRONG><BR>
<DD>
Deletes this domain from the database. If there is an error, returns the
error, otherwise returns false.
<P>The corresponding FS::cust_svc record will be deleted as well.</P>
<P></P>
<DT><STRONG><A NAME="item_replace_OLD_RECORD">replace OLD_RECORD</A></STRONG><BR>
<DD>
Replaces OLD_RECORD with this one in the database. If there is an error,
returns the error, otherwise returns false.
<P></P>
<DT><STRONG><A NAME="item_suspend">suspend</A></STRONG><BR>
<DD>
Just returns false (no error) for now.
<P>Called by the suspend method of FS::cust_pkg (see <A HREF=".././FS/cust_pkg.html">the FS::cust_pkg manpage</A>).</P>
<P></P>
<DT><STRONG><A NAME="item_unsuspend">unsuspend</A></STRONG><BR>
<DD>
Just returns false (no error) for now.
<P>Called by the unsuspend method of FS::cust_pkg (see <A HREF=".././FS/cust_pkg.html">the FS::cust_pkg manpage</A>).</P>
<P></P>
<DT><STRONG><A NAME="item_cancel">cancel</A></STRONG><BR>
<DD>
Just returns false (no error) for now.
<P>Called by the cancel method of FS::cust_pkg (see <A HREF=".././FS/cust_pkg.html">the FS::cust_pkg manpage</A>).</P>
<P></P>
<DT><STRONG><A NAME="item_check">check</A></STRONG><BR>
<DD>
Checks all fields to make sure this is a valid domain. If there is an error,
returns the error, otherwise returns false. Called by the insert and replace
methods.
<P>Sets any fixed values; see <A HREF=".././FS/part_svc.html">the FS::part_svc manpage</A>.</P>
<P></P>
<DT><STRONG><A NAME="item_whois">whois</A></STRONG><BR>
<DD>
Returns the Net::Whois::Domain object (see <A HREF="../Net/Whois.html">the Net::Whois manpage</A>) for this domain, or
undef if the domain is not found in whois.
<P>(If $FS::svc_domain::whois_hack is true, returns that in all cases instead.)</P>
<P></P>
<DT><STRONG><A NAME="item__whois">_whois</A></STRONG><BR>
<DD>
Depriciated.
<P></P>
<DT><STRONG><A NAME="item_submit_internic">submit_internic</A></STRONG><BR>
<DD>
Submits a registration email for this domain.
<P></P></DL>
<P>
<HR>
<H1><A NAME="version">VERSION</A></H1>
<P>$Id: svc_domain.html,v 1.3 2002-01-29 17:42:46 ivan Exp $</P>
<P>
<HR>
<H1><A NAME="bugs">BUGS</A></H1>
<P>All BIND/DNS fields should be included (and exported).</P>
<P>Delete doesn't send a registration template.</P>
<P>All registries should be supported.</P>
<P>Should change action to a real field.</P>
<P>The $recref stuff in sub check should be cleaned up.</P>
<P>
<HR>
<H1><A NAME="see also">SEE ALSO</A></H1>
<P><A HREF=".././FS/svc_Common.html">the FS::svc_Common manpage</A>, <A HREF=".././FS/Record.html">the FS::Record manpage</A>, <A HREF=".././FS/Conf.html">the FS::Conf manpage</A>, <A HREF=".././FS/cust_svc.html">the FS::cust_svc manpage</A>,
<A HREF=".././FS/part_svc.html">the FS::part_svc manpage</A>, <A HREF=".././FS/cust_pkg.html">the FS::cust_pkg manpage</A>, <A HREF="../Net/Whois.html">the Net::Whois manpage</A>, <EM>ssh</EM>,
<EM>dot-qmail</EM>, schema.html from the base documentation, config.html from the
base documentation.</P>
</BODY>
</HTML>
|